//希望在DataGrid中执行插入,更新和删除操作,但只有删除操作正常,插入和更新都提示update(insert)语法有错,请问这是为什么?
private void DataGridTest_Load(object sender, System.EventArgs e)
{
string strOpen="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/Visual Studio Projects/WinForm/Test.mdb";
string strQuery="select * from users";
con=new OleDbConnection(strOpen);
ada=new OleDbDataAdapter(strQuery,con);
cmd=new OleDbCommandBuilder(ada);
con.Open();
ds=new DataSet();
ada.Fill(ds);
dbg.DataSource=ds.Tables[0]; }
//在DataGrid中更新数据时提示'update语法有错'(插入操作代码同此一样)
private void btnUpdate_Click(object sender, System.EventArgs e)
{
if(ds.HasChanges())
{
try
{
ada.Update(ds);
MessageBox.Show("已更新!");
}
catch(OleDbException ex)
{
MessageBox.Show(ex.Message);
}
}
}//删除功能正确
private void btnDelete_Click(object sender, System.EventArgs e)
{
if(MessageBox.Show("是否删除?","确定",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes)
{
try
{
ds.Tables[0].Rows[dbg.CurrentRowIndex].Delete();
ada.Update(ds.Tables[0]);
MessageBox.Show("已删除!");
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
}
}
}
private void DataGridTest_Load(object sender, System.EventArgs e)
{
string strOpen="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/Visual Studio Projects/WinForm/Test.mdb";
string strQuery="select * from users";
con=new OleDbConnection(strOpen);
ada=new OleDbDataAdapter(strQuery,con);
cmd=new OleDbCommandBuilder(ada);
con.Open();
ds=new DataSet();
ada.Fill(ds);
dbg.DataSource=ds.Tables[0]; }
//在DataGrid中更新数据时提示'update语法有错'(插入操作代码同此一样)
private void btnUpdate_Click(object sender, System.EventArgs e)
{
if(ds.HasChanges())
{
try
{
ada.Update(ds);
MessageBox.Show("已更新!");
}
catch(OleDbException ex)
{
MessageBox.Show(ex.Message);
}
}
}//删除功能正确
private void btnDelete_Click(object sender, System.EventArgs e)
{
if(MessageBox.Show("是否删除?","确定",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes)
{
try
{
ds.Tables[0].Rows[dbg.CurrentRowIndex].Delete();
ada.Update(ds.Tables[0]);
MessageBox.Show("已删除!");
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
}
}
}
解决方案 »
- 请教一个Alinq 操作mysql的问题....急啊....各位大神门
- wmi程序PerfGrid中的问题!
- 主從表的問題,請大家幫幫忙。
- 关于C#读取Excel然后再导入别个Excel表的一些问题
- 编写win32服务程序
- 好好的C#程序为什么突然打开很慢
- 谁遇到过下面的情况???
- 郁闷了n天的难题,高手请进,下午要把东西交给客户,急急!在线等
- C#开发的windows form如何实现打印功能!
- 求教各位大神,C#中怎么设置多个公共变量,使得这些公共变量可以被多个窗口使用,同时也可以对公共变量进行赋值呢(主文提到了一个用公共类的疑问)
- 大家说说我要多久才能拿到我下一个三角
- 时间相减求时间差的问题
string connectionString,
string queryString)
{
DataSet dataSet = new DataSet(); using (OleDbConnection connection =
new OleDbConnection(connectionString))
{
connection.Open();
OleDbDataAdapter adapter =
new OleDbDataAdapter();
adapter.SelectCommand =
new OleDbCommand(queryString, connection);
OleDbCommandBuilder builder =
new OleDbCommandBuilder(adapter); adapter.Fill(dataSet); // Code to modify data in the DataSet here. // Without the OleDbCommandBuilder, this line would fail.
adapter.UpdateCommand = builder.GetUpdateCommand();
adapter.Update(dataSet);
}
return dataSet;
}