如何使用 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
目前我正在做一个项目,人们可以将 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