双击数据网格并粘贴到数据库记录

Double click datagrid and paste to database record

我想双击我的数据网格中的一行并将该数据传输到我的数据库,然后数据库将根据刚刚传输的数据打开一个报告。


        If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then
            Dim selectedRow = DataGridView1.Rows(e.RowIndex)
        End If
        'Dim PtwNoData As String = String.Empty

        Dim connection As SqlConnection
        Dim Command As SqlCommand
        Dim dt As New DataTable
        Dim IdLast As Integer
        Dim PTWNo As String
        Dim Reader As SqlDataReader
        connection = New SqlConnection("Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\IzzyM\Desktop\Developer\BIG\Permit Plus\Permit Plus\Database1.mdf;Integrated Security=True")
        Dim GuiD As String

        'GuiD = Me.DataGridView1.SelectedRows("GUID").Selected.

        Try
            connection.Open()
            Dim Query As String
            Query = "insert into PTWData * values ('" & Me.DataGridView1.SelectedRows(). & "')"
            Command = New SqlCommand(Query, connection)
            Reader = Command.ExecuteReader

            connection.Close()

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            connection.Dispose()
        End Try
        'Form4.Dispose()
        Dim f As New Form4()
        f.TopMost = True
        f.Show()
        'Form4.Show()
    End Sub```

您想在那里添加字符串值,但所选行是一个复杂的对象。它包含生成的行和其中的每一列(以及许多很多属性)。

见下文,其中 "ColumnNameIDK" 只是一个,您可能需要考虑很多。这个查询最终会是很多插入。 (为了安全起见,我们可能希望将其转换为参数化查询)

...

Dim Query As String
Dim rows As DataGridViewSelectedRowCollection = MyDataGridView.SelectedRows


for each row in Me.DataGridView1.SelectedRows()
   Dim myRow As DataRow = (TryCast(row.DataBoundItem, DataRowView)).Row
    query &= "insert into PTWData * values ('" & myRow("ColumnNameIDK")& "');"
    'this query appended on each pass   
next
Command = New SqlCommand(Query, connection)
Reader = Command.ExecuteReader