mysql - 如何使用 DataGridView 中的列来影响 MySQL
问题描述
目前我正在做一个项目,一个人可以将一个 excel 文件(包含库存数量)导入 DataGridView,然后将其导出到 MySQL 表中。导出到 MySQL 时,我想将文件中的库存数量从 MySQL 中的另一个表中取出(就像你在移动库存一样)。到目前为止,我已经对进口/出口业务进行了分类,但我无法弄清楚从表中扣除价值。
我目前正在尝试
For i As Integer = 0 To DataGridView1.Rows.Count - 2 Step +1
COMMAND = New MySqlCommand("UPDATE `test`.`new_table` SET `Quantity` = `Quantity` - '@Quantity' WHERE `ID`= ('@ID')", MysqlConn)
COMMAND.Parameters.Add("@ID", MySqlDbType.VarChar).Value = DataGridView1.Rows(i).Cells(0).Value.ToString()
COMMAND.Parameters.Add("@Quantity", MySqlDbType.VarChar).Value = DataGridView1.Rows(i).Cells("Quantity").Value.ToString()
COMMAND.ExecuteNonQuery()
Next
我不知道从这里去哪里。我也尝试通过 Dim 为它们分配名称,但我没有任何运气。如果您有任何建议,我将很高兴听到它!谢谢
解决方案
应该看起来更像:
Command = New MySqlCommand("UPDATE `test`.`new_table` SET `Quantity` = `Quantity` - @Quantity WHERE `ID`= @ID", MysqlConn)
Command.Parameters.AddWithValue("@ID", 0)
Command.Parameters.AddWithValue("@Quantity", 0)
For i = 0 To DataGridView1.Rows.Count - 2
Dim c = DataGridView1.Rows(i).Cells
Command.Parameters("@ID").Value = Convert.ToInt32(c("ID").Value))
Command.Parameters("@Quantity").Value = Convert.ToInt32(c("Quantity").Value))
Command.ExecuteNonQuery()
Next
但实际上你的数据应该在一个类型化的数据表中,那么你的代码看起来会更好一些:
Command = New MySqlCommand("UPDATE `test`.`new_table` SET `Quantity` = `Quantity` - @Quantity WHERE `ID`= @ID", MysqlConn)
Command.Parameters.AddWithValue("@ID", 0)
Command.Parameters.AddWithValue("@Quantity", 0)
For Each r In someTable
Command.Parameters("@ID").Value = r.ID
Command.Parameters("@Quantity").Value = r.Quantity
Command.ExecuteNonQuery()
Next
推荐阅读
- java - 如何使用 JPA 与关联类建立递归的多对多关系?
- nfc - NFC 贴纸以启动具有唯一 URL 的网站
- ibeacon - WebBluetooth可以发送信标吗
- c++ - 如何将 PHYSICAL_MONITOR 与监视器 DeviceID 关联
- docker - 无法通过“network_mode:host”访问容器
- dialogflow-es - 无法通过控制台创建新的 Dialogflow 代理
- reactjs - TypeError: _ClassName__WEBPACK_IMPORTED_MODULE_7__.ClassName 不是构造函数
- python - Beautiful Soup - 查找所有包含已知字符串的类
- php - 包含文件夹中的所有文件 - PHP
- javascript - Where to find information on how to initiate certain input type events in a textarea?