你是怎么复制到laDataSet的啊?
OleDbConnection myConn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Application.StartupPath+@"\mctest.mdb");
myConn.Open();
OleDbDataAdapter myAdapter= new OleDbDataAdapter("SELECT * from wenzhang",myConn);
myConn.open();
myAdapter.Fill(laDataSet,"表名"); //在dataset中得到数据库中的数据
myConn.close();
修改后用
myConn.open();
myAdapter.Updata(laDataSet,"表名");
myConn.close();
OleDbConnection myConn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Application.StartupPath+@"\mctest.mdb");
myConn.Open();
OleDbDataAdapter myAdapter= new OleDbDataAdapter("SELECT * from wenzhang",myConn);
myConn.open();
myAdapter.Fill(laDataSet,"表名"); //在dataset中得到数据库中的数据
myConn.close();
修改后用
myConn.open();
myAdapter.Updata(laDataSet,"表名");
myConn.close();
myAdapter.Fill(laDataSet,"表名"); 如果你的DS填充数据使用的表名与UPDATE使用的表名不同是不行的。另外,应该有主键,这样,DS才可以根据关键字更新。
直接使用COMMANDBUILDER类容易产生并发冲突
OleDbConnection myConn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Application.StartupPath+@"\mctest.mdb");
myConn.Open();
OleDbDataAdapter myAdapter= new OleDbDataAdapter("SELECT * from wenzhang",myConn);
myAdapter.Fill(laDataSet,"myTable");
dataGrid1.DataSource = laDataSet.Tables["myTable"];
myConn.Close();我的DS填充数据使用的表名与UPDATE使用的表名是一样的。应该是没有主健的缘故吧?UPDATE过程在另一个事件中,请给出UPDATA的代码好吗?
-----------------
修改后用
myConn.open();
myAdapter.Updata(laDataSet,"myTable");
myConn.close();
-----------------------
将在myAdapter.Updata(laDataSet,"myTable");此句出错,提示为:
未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。
其他信息: 当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。