整个代码就这几行,发现更新不成功,根本就没有删除。不知道是什么原因?请大虾指教。
昨天刚刚打过SQL Server 2000 SP4补丁,不会是这个原因吧? string connectstring = "User ID=sa;Persist Security Info=True;password=;Initial Catalog=Test;Data Source=(local)";

SqlConnection myConn = new SqlConnection(connectstring);
myConn.Open();
SqlDataAdapter myDataAdapter = new SqlDataAdapter("SELECT * FROM Test",myConn);
SqlCommandBuilder custCB = new SqlCommandBuilder(myDataAdapter); DataTable table = new DataTable();
myDataAdapter.Fill(table); table.Rows.Remove(table.Rows[0]);
table.AcceptChanges(); myDataAdapter.Update(table);
myConn.Close();

解决方案 »

  1.   

    还有在UPDATE后才能table.AcceptChanges();
      

  2.   

    To楼上:
     都已经Update了,再AcceptChanges还有什么意义?
      

  3.   

    DataTable的Rows集合提供了两种方法从一个数据表中删除一条记录,它们是Remove方法和Delete方法。示例如下:       删除MyTable中的第三条记录:       MyTable.Rows.Remove(3)或者       MyTable.Rows(3).Delete              Delete方法和Remove方法的区别不仅仅是方法的使用形式上。当调用Remove方法后,那么指定的DataRow就会从Rows集合中被删除。而Delete方法调用时,指定的DataRow并不真正从Rows集合中删除,只是作了一个删除标记,直到DataSet对象调用AcceptChanges方法的时候,才真正被删除;如果是RejectChanges方法被调用,那么Delete方法删除的DataRow对象将被恢复。
      

  4.   

    To singlepine:
    问题出在这吗?
      

  5.   

    table.Rows.Remove(table.Rows[0]);
    应该就是这一行的问题。
      

  6.   

    概念性的问题
    table.AcceptChanges(); 这个方法会把table中的记录状态清除,这个时候如果你调用Update方法, 将无法更新或是新增数据,因为记录的状态已经没有了,程序无法知道在记录中,那些是
    需要删除的。
    所以一定要在Update()之后才能调用AcceptChanges()-------------------------------------------------------
    欢迎加入程序员俱乐部(QQ群:14500585)
      

  7.   

    Delete方法和Remove方法的区别搞清楚了..肯定就解决了..关注一下你的问题.