我有一个具有CheckBox字段的DataGridView。我正在尝试更新数据库中的Checkbox值。但它给了我这个错误。我已经使用值ufGview_DataError
实现方法e.Cancel = true
。我有兴趣在它被检查时存储0,在未选中时存储1。有时它会更新值,但大多数时候没有做任何事情。我正在使用C#与Sql Server 2008 R2 Express Edition
以下是我用来更新数据库值的方法
if (e.ColumnIndex == 3)
{
if (ufGview.Rows[e.RowIndex].Cells["Column2"].Value != null)
{
bool a = Convert.ToBoolean(ufGview.Rows[e.RowIndex].Cells["Column2"].Value);
int i;
if (a == true)
{
i = 0;
}
else
{
i = 1;
}
UpdatePermissions(ufGview.Rows[e.RowIndex].Cells["Column1"].Value.ToString(), i);
}
}
以下是UpdatePermissions
private void UpdatePermissions(string p, int a)
{
CheckConnectionStatus();
try
{
sqlConnection.Open();
sqlCommand = new SqlCommand("Update FamilyMembers Set status=@status where Id=@Id", sqlConnection);
sqlCommand.Parameters.AddWithValue("@status", a);
sqlCommand.Parameters.AddWithValue("@Id", p);
sqlDataReader = sqlCommand.ExecuteReader();
sqlConnection.Close();
}
catch (Exception exp)
{
MessageBox.Show(exp.Message.ToString(), "Exception in UpdatePermissions");
}
finally
{
CheckConnectionStatus();
}
}
请帮我解决快照中显示的此问题。