再利用できない醜いコードがあります。似たような質問がたくさんあります。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またはテキストボックスなどから取得されます。ありがとうございます。