OleDbConnection conn = new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=tt.mdb");
            OleDbDataAdapter oda = new OleDbDataAdapter("select * from tab", conn);
            DataSet ds=new DataSet();
            oda.Fill(ds,"tab");
            DataRow[] dw = ds.Tables[0].Select("ID=3");
            dw[0][1] = "修改第一行第二列";            OleDbCommandBuilder db = new OleDbCommandBuilder(oda);
            oda.Update(ds, "tab"); //将数据集中修改了的内容写回到数据库中,应该怎么写才正确啊??

解决方案 »

  1.   

    ds.Tables[0].AcceptChanges();
    ....................
    oda.update(ds,"tab");
      

  2.   

    ds.Tables[0].AcceptChanges();
    ....................
    oda.update(ds,"tab");------------------------------------------------------------------------------
    只是显示的时候改变了,但在实际的数据库中,数据并没有改变啊,为什么会这样啊?可以给完整点的代码给我吗??我刚学C#的啊。。
      

  3.   

    using System;
    using System.Data;
    using System.Data.SqlClient;class Demo
    {
    static void Main()
    {
    SqlConnection cn = new SqlConnection("Server = (local);Integrated Security = SSPI;DataBase=northwind");
    SqlDataAdapter da = new SqlDataAdapter("Select CategoryID,CategoryName FROM Categories", cn);
    DataSet ds = new DataSet();
    da.Fill(ds,"Categories");

    ds.Tables[0].Rows[7]["CategoryName"] = "amandag";
    cn.Open();
    SqlCommandBuilder cmd = new SqlCommandBuilder(da);
    // Console.WriteLine(cmd.GetUpdateCommand().CommandText);
    da.Update(ds.Tables[0]);
    cn.Close();
    }
    }