如何在 Windows 窗体 C# 中单击按钮通过 DataGridView 更新数据库中的布尔字段
Posted
技术标签:
【中文标题】如何在 Windows 窗体 C# 中单击按钮通过 DataGridView 更新数据库中的布尔字段【英文标题】:How to update Boolean field in database through DataGridView by button click in Windows Form C# 【发布时间】:2017-05-14 01:54:02 【问题描述】:DataGridView 显示我的数据库表中的值,考虑在此表中我有 8 个字段,我想通过 DataGridView 仅更新 2 个特定字段。在这 2 个字段中,一个字段是布尔类型 - 因此当数据库表中的值为“1”时,它在 DataGridView 中显示为复选框。因此,当我取消选中时,它应该使用值“0”更新数据库表,并且第二个字段是 int 类型。
在 DataGridView 中对这两个特定字段(单元格)进行更改后,我应该能够通过单击按钮(windows Form C#)更新数据库表。
谁能帮我处理这个编码部分或如何解决这个问题?
【问题讨论】:
【参考方案1】:在您的按钮单击处理程序中,您需要执行以下操作:
foreach (DataGridViewRow row in dg.Rows)
if (Convert.ToBoolean(row["checkColumnName"].ToString())
// do checked thing
else
// do unchecked thing
【讨论】:
【参考方案2】:我能够以这种方式实现。希望这有帮助。 如果您有一个带有布尔/位字段的数据网格视图,并且想要根据您在数据网格视图中执行的选中/未选中事件更新数据库中的字段,则可以编写这段代码(在更新按钮单击事件中,更新布尔值的多条记录字段)
try
foreach (DataGridViewRow row in dataGridView1.Rows) //looping through each records in datagridview
//Update query
strQuery = @"Update TableA Set ActiveInactive = @ActiveInactive --Boolean field
Where Id = @Id ";
cmd = new SqlCommand(strQuery, // provide sql connection string here));
cmd.Parameters.AddWithValue("@Id", row.Cells["SystemIdentifier"].Value); //reading Id of a particular record
cmd.Parameters.AddWithValue("@ActiveInactive", SqlDbType.Bit).Value = (Convert.ToBoolean(row.Cells["ActiveInactive"].Value) ? 1 : 0);
//reading Boolean field of a particular record
cmd.ExecuteNonQuery();
MessageBox.Show("The records in the table has been updated.", "Information");
catch (Exception err)
MessageBox.Show(err.Message.ToString(), "Error");
注意:我已经在表单加载中声明了必需的变量,并为 sql 连接字符串创建了一个类,该类在需要时被调用。
【讨论】:
以上是关于如何在 Windows 窗体 C# 中单击按钮通过 DataGridView 更新数据库中的布尔字段的主要内容,如果未能解决你的问题,请参考以下文章