facciamo così: da quel che ho capito hai una parte di codice che ti mette a disposizione i dati ricevuti da un barcode reader, presumibilmente una stringa o in intero (non so come funziona...
) più forse altri dati
quello che ti serve è una datatable temporanea fatta su misura per la tua applicazione nella quale raccoglierai questi dati e dalla quale poi li riverserai in sql server
tra la datagridview e la datatable poi un oggetto BindingSource che ti permette di evitare lo smazzamento del reload della griglia una volta che fai gli insert dentro la datatable
nel caso poi ti servisse il BindingSource ti mette a disposizione la proprietà Filter per applicare filtri ai dati e il metodo RemoveFilter per togliere il filtro
per fare una prova aggiungi l'evento Load ad una form di prova, una datagridview e un pulsante
codice:
Imports System.Data
Public Class Form1
Dim dt As DataTable = New DataTable()
Dim bs As BindingSource = New BindingSource()
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim dc As DataColumn = New DataColumn("dato1", System.Type.GetType("System.String"))
Me.dt.Columns.Add(dc)
dc = New DataColumn("dato2", System.Type.GetType("System.String"))
Me.dt.Columns.Add(dc)
Me.bs.DataSource = Me.dt
Me.DataGridView1.DataSource = Me.bs
End Sub
Private Sub LoadData(ByVal dato1 As String, ByVal dato2 As String)
Me.dt.Rows.Add(dato1, dato2)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim rnd As New Random()
Me.LoadData(rnd.Next(0, 100), rnd.Next(0, 100))
End Sub
End Class