請各個高手指點.
本人用的資料庫為 MySql

解决方案 »

  1.   

    需要创建对应的thisAdapter.DeleteCommand
    参考以下代码
    public static SqlDataAdapter CreateCustomerAdapter(SqlConnection conn)
    {
      SqlDataAdapter da = new SqlDataAdapter();
      SqlCommand cmd;
      SqlParameter parm;  // Create the SelectCommand.  cmd = new SqlCommand("SELECT * FROM Customers " +
                           "WHERE Country = @Country AND City = @City", conn);  cmd.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
      cmd.Parameters.Add("@City", SqlDbType.NVarChar, 15);  da.SelectCommand = cmd;  // Create the DeleteCommand.  cmd = new SqlCommand("DELETE FROM Customers WHERE CustomerID = @CustomerID", conn);  parm = cmd.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
      parm.SourceVersion = DataRowVersion.Original;  da.DeleteCommand = cmd;  return da;
    }
      

  2.   

    你要删除的应该是thisDataSet中的数据,在findRow 上做delete能行吗?我没有试过我认为需要利用这里找到的DataSet的index,从DataSet中删除数据
      

  3.   

    直接在findRow上delete是可以的,问题不是这个;建议用thisAdapter.FillSchema()方法读取表结构,而不是手动设置主键如果不行再看
      

  4.   

    這個程式可 delete 一般的資料,但是不能 delete 下面這個程式 insert 進資料庫的資料
    insert 進資料庫的程式如下所示(這個程式是可以把資料新增到資料庫):MySqlConnection  thisConnection = new MySqlConnection(@"User Id=unima;Password=unima;Host=192.1.1.193;Database=BETATEST;");
    MySqlDataAdapter    thisAdapter = new MySqlDataAdapter("select USER_ID,USER_NAME,DEP_ID,DEP_NAME from EMPLOYEE_DATA01",thisConnection);
    MySqlCommandBuilder thisBuilder = new MySqlCommandBuilder(thisAdapter);
    DataSet thisDataSet = new DataSet();
    thisAdapter.Fill(thisDataSet,"EMPLOYEE_DATA01");

    // 新增至資料集
    DataRow thisRow = thisDataSet.Tables["EMPLOYEE_DATA01"].NewRow();

    thisRow["USER_ID"] = "WWWWWWWWW";
    thisRow["USER_NAME"] = "王三";
    thisRow["DEP_ID"] = "AAAAA";
    thisRow["DEP_NAME"] = "小王三";
    thisDataSet.Tables["EMPLOYEE_DATA01"].Rows.Add(thisRow); // 從資料集 UPDATE 到資料庫
    thisAdapter.Update(thisDataSet,"EMPLOYEE_DATA01");麻煩各位幫我再看一下,謝了
      

  5.   

    你thisAdapter.Update之后有重新fill或dataset.AcceptChanges了吗?如果没有,错误就是出在这里了。对于后来Inert进去的行执行Delele,该行是不会存在Table中的。