...
mycommand=new oledbdataadapter("select * from table1 where id=1000",myconnection)
OleDbCommandBuilder cb=new OleDbCommandBuilder(mycommand);
...
dim myrow as datarow
myrow=mydataset.tables("a").rows(0)
myrow("id")="2000"
...
mycommand.Update(mydataset);

解决方案 »

  1.   

    ...
    string UpdateStr="Update table1 set ID='2000' WHERE (ID= '1000')";//ID不能为标识
    OleDbCommand MyComm = new OleDbCommand(UpdateStr , MyConnection);
    try
    {
    MyComm.Connection.Open();
    MyComm.ExecuteNonQuery();
    }
    catch
    {
    ;
    }
    finally
    {
    MyComm.Connection.Close();
    MyConnection.Close();
    }
    ...
    如果你只是修改数据库纪录最好不要用“oledbdataadapter”与“DataSet”(在需要显示数据的时候用),那样太浪费服务器资源了。
      

  2.   

    首先,下面的代码肯定要出错的:
    myrow=mydataset.tables("a").rows(0)
    因为你 OleDbDataAdapter 的 SELECT 语句没有一个名字或别名叫 "a" 的数据表。剩下的代码看不出来什么问题,当然,BeginEdit 和 EndEdit 一般不需要显示调用。当你用
    myrow("field_name") = some_value
    更改数据的时候,BeginEdit 自动调用。
      

  3.   

    关于 BeginEdit/EndEdit 的详细信息,可以参考 MSDN DataRow.BeginEdit Method 说明。