The following code loads a tab delimited file into my DataGridView (loads 1 record from the data file). All this works perfectly, however, I need to duplicate this record X amount of times. Once the row is duplicated, I'll need to eventually edit some fields and write to a new file with the rows added.
I'v tried adding rows dynamically but it yells at me saying I can't because the data is bound.
Suggestions?
Dim file As String = "Temp.txt"
Dim path As String = "C:\Temp\"
Dim ds As New DataSet
Dim tbl As New DataTable
Try
If IO.File.Exists(IO.Path.Combine(path, file)) Then
Dim ConStr As String = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
path & ";Extended Properties=""Text;HDR=No;FMT=TabDelimited\"""
Dim conn As New OleDb.OleDbConnection(ConStr)
Dim da As New OleDb.OleDbDataAdapter("Select * from " & _
file, conn)
da.Fill(ds, "TextFile")
End If
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
DataGridView1.DataSource = ds.Tables(0)
You cannot add directly to a
DataGridView
which is databound because the data resides elsewhere and the DGV is simply displaying what is there. To add rows to aDataTable
:This will create a new row with the columns defined for it based on the table. Add the data for the new item to it, then add it to the table:
You did not really need to create a
DataSet
for what you have so far. Alternative:To literally clone the data for a row:
Note that you need to create a new row for each clone, the inner loop copies the data from row(0) to each new one.