我用的是access数据库
在作修改更新操作后,datagridview是变了,可是就是死活更新不到数据库中,下次再开,还是原来的数据!
代码如下:
        //按修改键的操作
        private void button4_Click(object sender, EventArgs e)
        {           
            //实例化btclientad2类.
      BTClientad2 btclientad2 = new BTClientad2();      //tablename为操作表名
            DataSet dataset = btclientad2.getrecord2(tablename);
            OleDbDataAdapter dataadapter = btclientad2.getrecord3(tablename);
            dataadapter.Fill(dataset);
            OleDbCommandBuilder builder = new OleDbCommandBuilder(dataadapter);
            dataadapter.Update(dataset.Tables[0]);
            dataset.Tables[0].AcceptChanges();
                
        }已经搞了一晚上了,可是就是出不来,拜托各位帮帮忙呀!!!!

解决方案 »

  1.   

    说错了,是 dataadapter.Update(dataSet);
    你查一下MSDN ,update只接受 DataSet
      

  2.   

    你在输入Update( 时也会有提示的。
      

  3.   

    已经改成dataadapter.Update(dataset)了
    可结果还是一样,就是数据库没有改变
      

  4.   

    在 dataset.Tables[0].AcceptChanges(); 设置断点OleDbCommandBuilder builder = new OleDbCommandBuilder(dataadapter);
                dataadapter.Update(dataset.Tables[0]);鼠标放在 builder看看有没有生成deletecommand
    再放在 update 上,看看返回值
      

  5.   

    dataadapter 有没有设置selectcommand
      

  6.   

    static private DataSet CreateCommandAndUpdate(
        string connectionString,
        string queryString)
    {
        DataSet dataSet = new DataSet();    using (OleDbConnection connection =
                   new OleDbConnection(connectionString))
        {
            connection.Open();
            OleDbDataAdapter dataAdapter =
                new OleDbDataAdapter();
            dataAdapter.SelectCommand =
                new OleDbCommand(queryString, connection);
            OleDbCommandBuilder commandBuilder =
                new OleDbCommandBuilder(dataAdapter);        dataAdapter.Fill(dataSet);        // Code to modify data in the DataSet here.        //Without the OleDbCommandBuilder this line would fail.
            dataAdapter.Update(dataSet);
        }
        return dataSet;
    }
      

  7.   

    updata上不显示值
    dataadapter上的deletecommand没有值(因为本本身没有进行删除操作吧?)selectcommand有值
      

  8.   

    数据更新之前,需要使用一个EndEdit 函数
    表示结束编辑
    你的代码中的AcceptChanges 是表示数据集接受改变
    而不是数据库
    所以不用AcceptChanges 
      

  9.   

    我是对查询出来的一行,使用文本绑定的方式,修改文本之后
    ,调用如下:就修改数据库文件了!           
    dtEdit.Rows[0].EndEdit();
                    daEdit.Update(dtEdit);
                    connEdit.Close();