【发布时间】:2013-11-02 22:32:30
【问题描述】:
我想创建一个 for 循环,我想在其中编写一个查询来更新数据库中每一行的值。这些行存在于 datagridview 以及数据库中。目的是在 datagridview 中进行更改时,因此使用按钮也可以在数据库表中应用更改。在每一行中,条形码及其数量是不同的。如果对datagridview中的所有行都进行了更改,那么它也可以使用按钮应用到数据库中,也请帮助参数。
这是应该在 for 循环中考虑的查询:
SqlCommand cmd2 = new SqlCommand("update prod_info set item_quantity=@qty where barcode=@barcode ", con);
将条形码视为 column1,将 item_quantity 视为 column2。
到目前为止,我已经尝试过创建一个 for 循环,但在 for 循环中出现错误:
for (int i = 0; dataGridView2.Rows.Count; i++) //getting error here
{
SqlCommand cmd2 = new SqlCommand("update prod_info set item_quantity=@qty where barcode=@barcode ", con);
cmd2.Parameters.AddWithValue("@barcode", dataGridView2.Rows[i].Cells[1].Value.ToString());
cmd2.Parameters.AddWithValue("@qty", dataGridView2.Rows[i].Cells[1].Value.ToString());
}
【问题讨论】:
-
到目前为止你尝试过什么?一种可能性是将 DataGridView 绑定到 DataTable 并使用 the SqlCommandBuilder helper class 为您生成插入/选择/更新/删除命令,一旦绑定到 UI 元素,因此对数据库的更改是“自动”进行的。
-
我想通过使用按钮来更改数据库。我的意思是当一切都在 datagridview 中得到确认时,然后使用按钮进行更改
-
这是我迄今为止尝试过的代码,我在 for 循环中遇到错误:for (int i = 0; dataGridView2.Rows.count; i++) { SqlCommand cmd2 = new SqlCommand("更新 prod_info 设置 item_quantity=@qty wherebarcode=@barcode ", con); cmd2.Parameters.AddWithValue("@barcode", dataGridView2.Rows[i].Cells[1].Value.ToString()); cmd2.Parameters.AddWithValue("@qty", dataGridView2.Rows[i].Cells[1].Value.ToString()); }
-
@pasty 我已经编辑了主要问题,你可以看到那里的变化
-
@HaiderKhattak 你收到了什么样的错误?你的循环什么都不做,只是创建一个命令,添加一些参数,什么都不做。
标签: c# winforms datagridview