将数据表复制到另一个表ListView VB.net的SQL Server查询参数

时间:2018-12-06 16:25:51

标签: sql-server vb.net

我正在使用VB.net 2013和SQL Server Express。我想将数据从列表视图中出现的表复制到临时表。但是我遇到了一个错误:

  

未为类型'String'和'System.Windows.Forms.ListViewItem.ListViewSubItem'定义运算符'&'

正确的参数是什么?

我的代码如下

For Each itm As ListViewItem In ListViewMasterBiaya.CheckedItems
        Dim SIMPAN As String = "INSERT INTO TempEntriBiaya WHERE NoKode='" & ListViewMasterBiaya.SelectedItems(0).SubItems(0) & "'"
        CMD = New SqlCommand(SIMPAN, CONN)
        CMD.ExecuteNonQuery()
    Next
End Sub

我还包括以下图像,当我检查它时,数据也将复制到临时表中

IMG1

1 个答案:

答案 0 :(得分:2)

在线发表评论和解释。在LarsTech评论之后。

Dim SIMPAN As String = "INSERT INTO TempEntriBiaya (Column1Name, Column2Name) Values (@Column1, @Column2);"
'The Using...End Using blocks ensure that your ADO objects are closed and 
'disposed event if there is an error
Using cn As New SqlConnection("Your connection string")
    'The command and parameters only need to be declared once
    'outside the loop, only the value of the parameters change
    Using cmd As New SqlCommand(SIMPAN, cn)
        cmd.Parameters.Add("@Column1", SqlDbType.Int)
        cmd.Parameters.Add("@Column2", SqlDbType.VarChar)
        'Open the connection at the last possible moment
        cn.Open()
        For Each itm As ListViewItem In ListViewMasterBiaya.CheckedItems
            cmd.Parameters("@Column1").Value = itm.SubItems(0).Text
            cmd.Parameters("@Column2").Value = itm.SubItems(1).Text
            cmd.ExecuteNonQuery()
        Next
    End Using
End Using

编辑使用事件ListView.ItemChecked

Private Sub ListViewMasterBiaya_ItemChecked(sender As Object, e As ItemCheckedEventArgs) Handles ListViewMasterBiaya.ItemChecked
        'e.Item returns the ListViewItem that changed its check
        If e.Item.Checked = True Then
            Dim SIMPAN As String = "INSERT INTO TempEntriBiaya (Column1Name, Column2Name) Values (@Column1, @Column2);"
            'The Using...End Using blocks ensure that your ADO objects are closed and 
            'disposed event if there is an error
            Using cn As New SqlConnection("Your connection string")
                Using cmd As New SqlCommand(SIMPAN, cn)
                    cmd.Parameters.Add("@Column1", SqlDbType.Int).Value = e.Item.SubItems(0)
                    cmd.Parameters.Add("@Column2", SqlDbType.VarChar).Value = e.Item.SubItems(1)
                    'Open the connection at the last possible moment
                    cn.Open()
                    cmd.ExecuteNonQuery()
                End Using
            End Using
        End If
End Sub