Sql server Vb.Net中的循环
我有一个来自datagrid的vb.net代码,用于将导入器的记录插入Ms SQL数据库。这套守则运作得并不令人满意。对于多个导入器,它会插入重复的数据行,而不会为单个导入器插入任何记录。有人能帮我吗Sql server Vb.Net中的循环,sql-server,database,vb.net,for-loop,Sql Server,Database,Vb.net,For Loop,我有一个来自datagrid的vb.net代码,用于将导入器的记录插入Ms SQL数据库。这套守则运作得并不令人满意。对于多个导入器,它会插入重复的数据行,而不会为单个导入器插入任何记录。有人能帮我吗 Private Sub UpdateImporterBalance() Dim intReturnValue As Integer = 0 Dim SqlCmd As String = "Insert into Importer_Import (Order_ID, Importer
Private Sub UpdateImporterBalance()
Dim intReturnValue As Integer = 0
Dim SqlCmd As String = "Insert into Importer_Import (Order_ID, Importer, Quantity, Product, Storage_Charge) values (@Order_ID, @Importer, @Quantity, @Product, @Storage_Charge)"
Dim ConnObj As SqlConnection = New SqlConnection(clsGlobals.ConnString)
Dim CmdObj As SqlCommand = New SqlCommand(SqlCmd, ConnObj)
ConnObj.Open()
CmdObj.Parameters.Add("@Order_ID", SqlDbType.Int)
CmdObj.Parameters.Add("@Product", SqlDbType.Int)
CmdObj.Parameters.Add("@Importer", SqlDbType.Int)
CmdObj.Parameters.Add("@Quantity", SqlDbType.Int)
CmdObj.Parameters.Add("@Storage_Charge", SqlDbType.Decimal)
For i = 0 To Me.dgvImporter.RowCount - 2
CmdObj.Parameters("@Order_ID").Value = Convert.ToInt32(txtOrderID.Text)
CmdObj.Parameters("@Product").Value = Convert.ToInt32(cboProductName.SelectedValue)
CmdObj.Parameters("@Importer").Value = Convert.ToInt32(Me.dgvImporter.Rows(i).Cells(0).Value)
CmdObj.Parameters("@Quantity").Value = CInt(Me.dgvImporter.Rows(i).Cells(1).Value)
CmdObj.Parameters("@Storage_Charge").Value = CDbl(Me.dgvImporter.Rows(i).Cells(2).Value)
intReturnValue = CInt(CmdObj.ExecuteNonQuery())
Next
ConnObj.Close()
End Sub
你的问题是什么?在不知道您要做什么的情况下无法帮助您…我正在尝试从数据网格插入导入程序的记录。对于单个导入器,代码不会插入任何记录,而是为多个导入器插入多个重复记录。为什么要从0循环到x-2?插入时总是缺少一行,这就是为什么如果只有一条记录,它就不会被添加。除非你的网格有什么特别的地方,否则你应该用-1来代替。可能要错过底部的新行,它是空的。我会用Try/Catch来查找它所说的错误-可能是insert语句-检查值