string sID=((myNode)e.Node).ID.ToString();
// 定义数据库连接
System.Data.OleDb.OleDbConnection CN = new System.Data.OleDb.OleDbConnection();
//初始化连接字符串
CN.ConnectionString=@"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Database Password=;Data Source=""C:\Documents and Settings\guoj.TSERVER\桌面\1.mdb"";Password=;Jet OLEDB:Engine Type=5;Jet OLEDB:Global Bulk Transactions=1;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Encrypt Database=False";
CN.Open();
System.Data.OleDb.OleDbDataAdapter adp = new System.Data.OleDb.OleDbDataAdapter("select * from 表3",CN);
System.Data.OleDb.OleDbCommandBuilder myCommandBuilder1 = new System.Data.OleDb.OleDbCommandBuilder(adp) ;

System.Data.OleDb.OleDbCommand cmd;
cmd = new System.Data.OleDb.OleDbCommand("update 表3 set ConText="+e.Label+" where ID="+sID,CN);
cmd.CommandType=CommandType.Text;
adp.UpdateCommand=cmd;
ds=new DataSet();
adp.Fill(ds,"表3");
cmd.ExecuteNonQuery();
adp.Update(ds,"表3");
ds.AcceptChanges();
这段程序为什么更新不了数据库呢?语法没有问题,也不报错。SQL语句也是对的

解决方案 »

  1.   

    对更新的机制还不是了解的很透,高手可指点一二。
    一般我用myCommandBuilder1绑定,只要给出SELECTCOMMAND即可自动生成UPDATACOMMAND的呀、
      

  2.   

    呵呵建议差一下MSDN,有最详细的解释PS.使用dataset就没有必要出现
    cmd.ExecuteNonQuery();
      

  3.   

    你代码写的很多,很乱啊!
    更新可以直接使用dataAdapter("update 表3 set ConText="+e.Label+" where ID="+sID,CN);
    或者使用更新语句,然后在ExecuteNonQuery();
    没有必要这样写啊!
    简单一点再试试。