C# 数据网格视图复选框中的多个更新
我正在尝试根据复选框列“状态”更新列的状态。 我是对的,一次只能更新一行。我需要同时进行多个更新 下面是我的一段代码:C# 数据网格视图复选框中的多个更新,c#,.net,C#,.net,我正在尝试根据复选框列“状态”更新列的状态。 我是对的,一次只能更新一行。我需要同时进行多个更新 下面是我的一段代码: private void button1_Click(object sender, EventArgs e) { foreach (DataGridViewRow row in dataGridView2.Rows) { if (con.State == ConnectionState.Open) { c
private void button1_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dataGridView2.Rows)
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
if (row.Cells["txtStatus"].Value != null)
{
if (Convert.ToBoolean(row.Cells["txtStatus"].Value) == true)
{
con.Open();
string query = @"update tbl_Training_Records_CIP_dotnet set Attendance_Status = 'Attended' where RequestId=@RequestId";
SqlCommand cmd = new SqlCommand(query, con);
// cmd.Parameters.AddWithValue("@training_id", row.Cells["txt_Training_ID"].Value.ToString());
cmd.Parameters.AddWithValue("@RequestId", row.Cells["txtRequestId"].Value.ToString());
cmd.ExecuteNonQuery();
MessageBox.Show("Records have been updated");
con.Close();
loaddatatable2();
}
}
为什么调用loaddatatable2()函数?它应该在foreach循环之外(也是消息框)。我认为这个函数会加载数据网格视图中的值,所以当第一次更新查询发生时,它会加载数据,并消失所有剩余的值。可怕的异常处理。不起作用
foreach (DataGridViewRow dr in dgvPendingApprovals.Rows)
{
int rid = int.Parse(dgvPendingApprovals[1, dr.Index].Value.ToString());
DataGridViewCheckBoxCell ch1 = new DataGridViewCheckBoxCell();
ch1 = (DataGridViewCheckBoxCell)dr.Cells[0];
try
{
switch (ch1.Value.ToString())
{
case "False":
ch1.Value = false;
break;
case "True":
cmd.CommandText = "Update ApplicantDetails set Status2 = 'Yes', ApprovedDate2 = getdate() where Id = '" + rid + "'";
cmd.Connection = conobj.getConn();
conobj.openCon();
cmd.ExecuteNonQuery();
conobj.closeCon();
rid = 0;
break;
}
}
catch { }
}