//声明2个全局变量
        public DataSet ds = new DataSet();
        public SqlDataAdapter sda = null;        private void frmContract_Load(object sender, EventArgs e)//调用存储过程获取查询数据。
        {
             SqlConnection con = db.CreateCon("server=.;database=a;uid=sa;pwd=123");
                ds.Clear();
                con.Open();
                sda = new SqlDataAdapter("p_GetContract", con);
                sda.SelectCommand.CommandType = CommandType.StoredProcedure;
                sda.SelectCommand.Parameters.Add("@Vle", SqlDbType.VarChar).Value = "cap";
                sda.SelectCommand.Parameters.Add("@StartDate", SqlDbType.DateTime).Value = "2012-01-01";
                sda.SelectCommand.Parameters.Add("@EndDate", SqlDbType.DateTime).Value = "2012-01-31"
                sda.Fill(ds);
                ds.Tables[0].PrimaryKey = new DataColumn[] { ds.Tables[0].Columns["FID"] };
                gv.DataSource = ds.Tables[0];
con.Close();
        }
//遍历修改数据
        private void Audit_Click(object sender, EventArgs e)
        {
               foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    if (!Convert.ToBoolean(dr["Checked"]))
                        dr["Checked"] = true;
                }
                SqlCommandBuilder sb = new SqlCommandBuilder(sda);
                sda.Update(ds);        }问题:由于存储过程是链接了多个表,并且包含了复杂的查询和过滤条件,导致无法向更新1个表似的调用sda.Update(ds)更新,这种存储过程的数据集,大家通常都怎么来更新数据,难道需要用sql语句直接更新数据表吗?