テーブル内の 2 つの異なる ID を更新しようとすると、「スカラー変数 "Post_ID" を宣言する必要があります」というエラーが表示されます。つまり、ID # 25 など、必要な回数だけ更新できますが、 ID # 26 を更新すると、上記のエラーが表示されます。挿入機能は、更新機能のみで正常に動作します。お時間をいただき、ありがとうございます。DateKeyNames = ID に注意してください。更新のみのコードは次のとおりです。
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "UPDATE MyTable SET Post_ID=@Post_ID, Date=@Date, Description=@Description WHERE ID=@ID";
TextBox myTextBox11 = GV_InlineEditing.Rows[0].FindControl("GV_Post_ID") as TextBox;
TextBox myTextBox22 = GV_InlineEditing.Rows[0].FindControl("TextBox2") as TextBox;
TextBox myTextBox33 = GV_InlineEditing.Rows[0].FindControl("TextBox3") as TextBox;
if (myTextBox11 != null)
{
cmd.Parameters.Add("@Post_ID", SqlDbType.VarChar).Value = myTextBox11.Text;
}
else
{
TextBox GV_Post_ID = GV_InlineEditing.Rows[0].Cells[0].FindControl("GV_Post_ID") as TextBox;
}
if (myTextBox22 != null)
{
cmd.Parameters.Add("@Date", SqlDbType.VarChar).Value = myTextBox22.Text;
}
else
{
TextBox GV_Post_ID = GV_InlineEditing.Rows[0].Cells[0].FindControl("Date") as TextBox;
}
if (myTextBox33 != null)
{
cmd.Parameters.Add("@Description", SqlDbType.VarChar).Value = myTextBox33.Text;
}
else
{
TextBox GV_Post_ID = GV_InlineEditing.Rows[0].Cells[0].FindControl("Description") as TextBox;
}
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = Convert.ToInt32(GV_InlineEditing.Rows[e.RowIndex].Cells[1].Text);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
GV_InlineEditing.EditIndex = -1;
BindData();