/*
*DataSet是通过IList反射生成的
*DataSet里的TABLES没有主键,表名和数据库表名一致
*/
private void btnDelete_Click(object sender, EventArgs e)
{
  string contion =dataGridView1.SelectedCells[0].ToString();
           
   master.deleteMaster(ds, condition);
}
public int DeleteUser(Dtaset ds,string condition)
{
   DataRow[] delRows = ds.Tables[0].Select(delCollection);
   
   return DeleteUserByRows(delrows)
}public int DeleteUserByRows(DataRow[] rows)
{
     SqlDataAdapter userDa = new SqlDataAdapter();      //请问后面怎么通过SqlDataAdapter .update(DataRow[])
     //删除数据库里相应的行
}

解决方案 »

  1.   


    public bool RunProcUpdata(string SQL, DataSet Ds)
            {
    SqlConnection Conn;            bool flag = false;            Conn = new SqlConnection(ConnStr);            Conn.Open();            SqlDataAdapter Da;            Da = CreateDa(SQL);            SqlCommandBuilder scmd = new SqlCommandBuilder(Da);            try
                {
                    lock (this)
                    {
                        Da.Update(Ds);                    flag = true;
                    }            }
                catch
                {
                   return flag;
                }
                Dispose(Conn);      }      
    给你段dataset更新数据的代码自已研究下吧
      

  2.   

    SqlDataAdapter 必须要知道Select语句的情况下才可以使用整结果集更新(包括delete,update,insert更新)
    你详细看下SqlDataAdapter支持方法就可以了
      

  3.   

    我知道要写我写了 DeleteCommand的 调的存储过程userda.deletecommand = new Sqlcommand("exec deleteuser @uId",con)userda
    .deletecommand
    .params
    .andrange(new sqlparam[]{
                               new sqlparam("@uId",ros[0].toString())
                             });结果还是不行
      

  4.   

    是不是我从 dataGridView 取值出问题了?
      

  5.   

    userda.deletecommand = new Sqlcommand("exec deleteuser @uId",con)
    我这里写了的
      

  6.   

    userda.DeleteCommand.CommandType=CommandType.StoredProcedure;//需要指明是使用存储过程
      

  7.   

    另外,就是需要循环,对每一条需要删除的DataRow,都要执行一次命令。
      

  8.   

    SqlCommand cmd = new SqlCommand(del,conn);
    cmd.Parameters.Add("@id",SqlDbType.Int,4,"id");
    string filter = @"";
    foreach (DataRow row in dt.Select(filter))
    {
              row.Delete();
     }
    da.DeleteCommand = cmd;
    da.Update(ds);