如果你用SQLDATAADAPTER,就可以用UPDATE方法
如果用SQLCOMMAND,就直接写SQL语句更新。

解决方案 »

  1.   


    Dim ConStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.mappath("products.mdb")
        Dim MyConn As OleDb.OleDbConnection = New OleDb.OleDbConnection(ConStr)
        MyConn.Open()
        SqlStr = "select * from products where id=null"
        Dim MyAdp As New OleDb.OleDbDataAdapter(SqlStr, MyConn)
        Dim myDr As New DataSet()
        MyAdp.Fill(myDr, "products")
        Dim DRS As DataRow = myDr.Tables("products").NewRow
        DRS.BeginEdit()
        DRS.Item("typeid") = TypeList.SelectedItem.Value
        DRS.Item("isshow") = chkShow.Checked
        DRS.Item("isclass") = chkClass.Checked
        DRS.Item("allc") = chkAllC.Checked
        DRS.Item("memo") = txtMemo.Text
        DRS.EndEdit()
        myDr.Tables("products").Rows.Add(DRS)
        MyAdp.Update(myDr, "products")
     出错提示:当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand
      

  2.   

    在 Update 过程中使用的 SqlCommand,用于在数据库中更新对应于 DataSet 中已修改行的记录。:
    public void CreateSqlDataAdapter() {
        string mySelectText = "SELECT * FROM Categories ORDER BY CategoryID";
        string mySelectConn = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind";
        SqlDataAdapter myDataAdapter = new SqlDataAdapter(mySelectText,mySelectConn);
        myDataAdapter.UpdateCommand.CommandText = "UPDATE Categories SET Description='Cheeses, Milk, Ice Cream' WHERE CategoryName='Dairy Products'";
        myDataAdapter.UpdateCommand.Connection = (SqlConnection)myDataAdapter.SelectCommand.Connection;
    }
      

  3.   

    To: dragon2002(哈哈)谢谢,帮助文件我自己也会看,请问如何修改我上面的代码才能正常执行?