updatecommand等命令写了吗
SqlDataAdapter catDA = new SqlDataAdapter("SELECT CategoryID, CategoryName FROM Categories", nwindConn);       catDA.UpdateCommand = new SqlCommand("UPDATE Categories SET CategoryName = @CategoryName " +
                                     "WHERE CategoryID = @CategoryID" , nwindConn);catDA.UpdateCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");SqlParameter workParm = catDA.UpdateCommand.Parameters.Add("@CategoryID", SqlDbType.Int);
workParm.SourceColumn = "CategoryID";
workParm.SourceVersion = DataRowVersion.Original;DataSet catDS = new DataSet();
catDA.Fill(catDS, "Categories");   DataRow cRow = catDS.Tables["Categories"].Rows[0];
cRow["CategoryName"] = "New Category";catDA.Update(catDS);

解决方案 »

  1.   

    并发冲突,在Update完后使用dataset的AcceptChanges()方法
      

  2.   

    当调用 Update 方法时,DataAdapter 将分析已作出的更改并执行相应的命令(INSERT、UPDATE 或 DELETE)。当 DataAdapter 遇到对 DataRow 的更改时,它将使用 InsertCommand、UpdateCommand 或 DeleteCommand 来处理该更改。在调用 Update 之前,必须显式设置这些命令,否则将引发异常。
    或者如果 DataTable 映射到单个数据库表或从单个数据库表生成,则可以利用 CommandBuilder 对象自动生成 DataAdapter 的 DeleteCommand、InsertCommand 和 UpdateCommand,如:
    SqlDataAdapter custDA = new SqlDataAdapter("SELECT * FROM Customers", nwindConn);
    SqlCommandBuilder custCB = new SqlCommandBuilder(custDA);
    这些都是ms.net文档里的。
      

  3.   

    updatecommand等都有的
    使用dataset的AcceptChanges()方法也不行啊 还是报错啊 真的没人会吗?????
      

  4.   

    同意 
    我也碰到过
    还没解决
    如果楼主解决了请告诉我
    [email protected]
    谢谢
      

  5.   

    如果谁解决了,也告诉我
    [email protected]
    谢谢
      

  6.   

    发生这种错误的原因是,你改了一个记录之后 又更改  然后用Update更新数据库就发生了。有一个不是很好的解决方法,就是每改一次记录之后用就用 Update更新数据库,再
    用 acceptchanges() 就不会发生这类错误
      

  7.   

    可是我现在也都加上了,acceptchanges() 。还是出错阿。怎么办?