OleDbConnection con = new OleDbConnection("provider = microsoft.jet.oledb.4.0;data source = Dm.mdb;");
                con.Open();
                OleDbCommand cmd = new OleDbCommand("Select * from Wt", con);
             
                OleDbDataAdapter da = new OleDbDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.SelectCommand = cmd;
                da.Fill(dt);
                dt = ttWorkTime;
                OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
                da.Update(dt);
                con.Close();运行这段代码结果总是在原来的数据后面加上ttWorkTime中的数据,而不是用ttWorkTime的数据覆盖原有数据,请问怎样才能把ttWorkTime中的数据更新到Wt表格中

解决方案 »

  1.   

    换成MSSQL 试试 看是不是这样吧
      

  2.   

    http://msdn.microsoft.com/zh-cn/library/377a8x4t%28VS.80%29.aspx用Fill方法,会根据主键来增、删、改,否则就是一味的加行,当然前提是你的表中要有可唯一标识的主键
      

  3.   

    现在添加可以正常更新了,但是删除不能更新,用ReMove(),和dtableRow.Delete();dtTable.AcceptChanges();都不能用OleDbDataAdapter.update(dtTable);更新。
    这样可以实现dtableRow.Delete();
    OleDbDataAdapter.update(dtTable);
    dtTable.AcceptChanges();但我希望先任意修改Datatable,最后在更新到数据库中,请问有什么办法实现吗?
      

  4.   

    DataTable dtTable//
    SqlDataAdapter sda=...
    SqlCommandBuilder scb = new SqlCommandBuilder(sda);
    sda.Update(dtTable);
    这样先任意修改Datatable,最后在更新到数据库中