//声明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语句直接更新数据表吗?
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语句直接更新数据表吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货