Vb.net 双击datagrid并粘贴到数据库记录

Vb.net 双击datagrid并粘贴到数据库记录,vb.net,datagridview,reportviewer,Vb.net,Datagridview,Reportviewer,我想双击datagrid中的一行并将该数据传输到我的数据库,然后数据库会根据刚才传输的数据打开一个报告 If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then Dim selectedRow = DataGridView1.Rows(e.RowIndex) End If 'Dim PtwNoData As String = String.Empty

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


        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```

您希望在那里添加字符串值,但选定的行是一个复杂的对象。它包含结果行和其中的每一列(以及许多属性)

见下面,“CulnNAMEIDK”只有一个,你可能有很多要考虑。这个查询最终将是大量的插入。(为了安全起见,我们可能希望将其转换为以后的参数化查询)


您希望在那里添加字符串值,但选定的行是一个复杂的对象。它包含结果行和其中的每一列(以及许多属性)

见下面,“CulnNAMEIDK”只有一个,你可能有很多要考虑。这个查询最终将是大量的插入。(为了安全起见,我们可能希望将其转换为以后的参数化查询)


您好,谢谢您的帮助,但是,thi抛出了以下错误:“无法将类型为'system.windows.forms.datagridviewrow'的对象强制转换为类型为'system.data.datarow'。啊,我以前有过这种情况,因为它们是两个不同的对象,所以必须进行转换才能将其视为典型的Datatable datarow。”。我已经更新了我的答案。谢谢,这让我今晚不会从桥上摔下来!非常感谢,非常感谢。但是,我提出了以下错误:“无法将类型为'system.windows.forms.datagridviewrow'的对象强制转换为类型为'system.data.datarow'。啊,我以前有过这种情况,因为它们是两个不同的对象,所以必须进行转换才能将其视为典型的Datatable datarow。”。我已经更新了我的答案。谢谢,这让我今晚不会从桥上摔下来!非常感谢
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