OleDbCommandBuilder的问题!MSDN的例子有错?还是我太倒霉?

qwerttyy 2008-12-02 11:58:38
MSDN地址:
http://msdn.microsoft.com/zh-cn/library/system.data.oledb.oledbcommandbuilder(VS.80).aspx

我照例子写的代码如下:

DataSet dataSet = new DataSet();
OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=a.mdb");

OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand("select c1,c2 from t1", connection);

OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);
//执行完成后adapter.UpdateCommand=null;为什么???

adapter.UpdateCommand = cb.GetUpdateCommand();
//加了这一句后,adapter.UpdateCommand有值了。

MessageBox.Show(adapter.UpdateCommand.CommandText);
//值为:"UPDATE t1 SET c2 = ? WHERE ((c1 = ?) AND ((? = 1 AND c2 IS NULL) OR (c2 = ?)))"

connection.Open();

adapter.Fill(dataSet, "t1");

dataSet.Tables[0].Rows[0][1] = "aaaaaaaaa";

adapter.Update(dataSet, "t1");
//执行完成后,数据库内的值没有变化!

connection.Close();




操作系统:WIN2003
开发:VS2005
数据库:ACCESS,名字:a.mdb
表名:t1
字段名:c1 主键,自动增长列
字段名:C2 文本类型

代码和MSDN的基本一致,为什么数据库不能更新???请各位老大帮忙!
...全文
84 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiang_jiajia10 2008-12-02
  • 打赏
  • 举报
回复
我也没发现代码那里有问题啊
qwerttyy 2008-12-02
  • 打赏
  • 举报
回复
嗯!OK!我找到原因了!
1、必须要加adapter.UpdateCommand = cb.GetUpdateCommand();
2、运行的时候VS2005把数据库拷贝到BIN目录里了,所以原来位置的mdb文件没有被更新!
江城老温 2008-12-02
  • 打赏
  • 举报
回复
测试正常.

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧