大家好,我在更新数据的代码的执行过程中抱错,系统提示:“未处理的“System.Data.DBConcurrencyException”类型的异常出现在 system.data.dll 中。其他信息: 。”这是怎么回事?我明明已经改动了数据的值了阿。
这是我的代码:希望大家帮帮我。
string constr=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Library.liujiabin\library.mdb;Persist Security Info=False";
OleDbConnection conn = new OleDbConnection (constr);
conn.Open ();
string sql="SELECT * FROM JieShu WHERE CardNO ="+"'"+ jhcardno +"'AND ReturnYON =0 AND Book_NO ="+"'"+ textBox29 .Text +"'";
OleDbDataAdapter oda = new OleDbDataAdapter (sql,conn);
OleDbCommandBuilder cb = new OleDbCommandBuilder (oda);
DataSet ds = new DataSet ();
oda .Fill (ds,"JieShu");
DataTable dt = new DataTable ();
dt = ds.Tables ["JieShu"];
System .DateTime dtback = System .DateTime .Today ;
dt .Rows [0]["BackDate"] = dtback ;
dt .Rows [0]["ReturnYON"] = 1 ;
oda .Update (ds,"JieShu");

解决方案 »

  1.   

    这个表有主键吗?或者把dt .Rows [0]["ReturnYON"] = 1 ;
    去掉看看行不行
      

  2.   

    语句是OleDbCommandBuilder 自动产生的,按照道理不会错,
    不过你可以跟踪调试一下,看看 UpdateCommand 的Text到底是什么
      

  3.   

    builder虽然已经进行了初始化,但是仍要对dataAdapter的updatecommand进行显示的调用builder.GetUpdateCommand方法来获得该command对象.
      

  4.   

    谢谢大家了帮助我,最后问题经过多番调试解决了,总结就是SELECT语句的问题,因为我的数据库的表设计的不科学。谢谢大家!