我有一个无法重用的丑陋代码。我有很多类似的疑问。我想用 SqlParameterCollectionExtensions 或其他更好的方法重写它。但我根本不知道 SqlParameterCollectionExtensions。
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
SqlConnection con = new SqlConnection(strCon);
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "UPDATE Problem_DE SET ProbDesc = @ProbDesc, field_1 = @field_1, field_2 = @field_2, field_3 = @field_3, field_4 = @field_4, field_5 = @field_5, field_6 = @field_6, field_7 = @field_7 WHERE (ProbId = @ProbId)";
if (e.NewValues["ProbDesc"] == null)
cmd.Parameters.AddWithValue("@ProbDesc", DBNull.Value);
else
cmd.Parameters.AddWithValue("@ProbDesc", e.NewValues["ProbDesc"]);
if (e.NewValues["field_1"] == null)
cmd.Parameters.AddWithValue("@field_1", DBNull.Value);
else
cmd.Parameters.AddWithValue("@field_1", e.NewValues["field_1"]);
if (e.NewValues["field_2"] == null)
cmd.Parameters.AddWithValue("@field_2", DBNull.Value);
else
cmd.Parameters.AddWithValue("@field_2", e.NewValues["field_2"]);
if (e.NewValues["field_3"] == null)
cmd.Parameters.AddWithValue("@field_3", DBNull.Value);
else
cmd.Parameters.AddWithValue("@field_3", e.NewValues["field_3"]);
if (e.NewValues["field_4"] == null)
cmd.Parameters.AddWithValue("@field_4", DBNull.Value);
else
cmd.Parameters.AddWithValue("@field_4", e.NewValues["field_4"]);
\\ blah blah
cmd.ExecuteNonQuery();
con.Close();
}
sql参数来自e或文本框等。谢谢。