我用的是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();
}已经搞了一晚上了,可是就是出不来,拜托各位帮帮忙呀!!!!
在作修改更新操作后,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();
}已经搞了一晚上了,可是就是出不来,拜托各位帮帮忙呀!!!!
你查一下MSDN ,update只接受 DataSet
可结果还是一样,就是数据库没有改变
dataadapter.Update(dataset.Tables[0]);鼠标放在 builder看看有没有生成deletecommand
再放在 update 上,看看返回值
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;
}
dataadapter上的deletecommand没有值(因为本本身没有进行删除操作吧?)selectcommand有值
表示结束编辑
你的代码中的AcceptChanges 是表示数据集接受改变
而不是数据库
所以不用AcceptChanges
,调用如下:就修改数据库文件了!
dtEdit.Rows[0].EndEdit();
daEdit.Update(dtEdit);
connEdit.Close();