Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Vb.Net中的循环_Sql Server_Database_Vb.net_For Loop - Fatal编程技术网

Sql server Vb.Net中的循环

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

我有一个来自datagrid的vb.net代码,用于将导入器的记录插入Ms SQL数据库。这套守则运作得并不令人满意。对于多个导入器,它会插入重复的数据行,而不会为单个导入器插入任何记录。有人能帮我吗

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语句-检查值