如何使用 DataGridView 中的列来影响 MySQL

How to use columns in a DataGridView to influence MySQL

目前我正在做一个项目,人们可以将 excel 文件(包含库存数量)导入 DataGridView,然后将其导出到 MySQL table。导出到 MySQL 时,我想从 MySQL 中的另一个 table 中取出文件中的库存数量(就像您要移动库存一样)。到目前为止,我已经对 importing/exporting 业务进行了排序,但我不知道如何从 table.

中扣除价值

我正在尝试

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