DataSet
、DataTable
およびlinq 式は、 a の共通DataSource
の値ですDataGridView
。
逆に、DataGridView
レコードをDataSet
orに渡す/バインドすることは可能DataTable
ですか?
ありがとう
DataSet
、DataTable
およびlinq 式は、 a の共通DataSource
の値ですDataGridView
。
逆に、DataGridView
レコードをDataSet
orに渡す/バインドすることは可能DataTable
ですか?
ありがとう
あなたはこのようなことをすることができます:
var dataTable = new DataTable();
Array.ForEach(
dataGridView1.Columns.Cast<DataGridViewColumn>().ToArray(),
arg => dataTable.Columns.Add(arg.HeaderText, arg.ValueType));
Array.ForEach(
dataGridView1.Rows.Cast<DataGridViewRow>().ToArray(),
arg => dataTable.Rows.Add(arg.Cells.Cast<DataGridViewCell>().Select(cell => cell.Value)));
return dataTable;
これを試すことができます:
Public Shared Function DataGridViewToDataTable(ByVal dtg As DataGridView,
Optional ByVal DataTableName As String = "myDataTable") As DataTable
Try
Dim dt As New DataTable(DataTableName)
Dim row As DataRow
Dim TotalDatagridviewColumns As Integer = dtg.ColumnCount - 1
'Add Datacolumn
For Each c As DataGridViewColumn In dtg.Columns
Dim idColumn As DataColumn = New DataColumn()
idColumn.ColumnName = c.Name
dt.Columns.Add(idColumn)
Next
'Now Iterate thru Datagrid and create the data row
For Each dr As DataGridViewRow In dtg.Rows
'Iterate thru datagrid
row = dt.NewRow 'Create new row
'Iterate thru Column 1 up to the total number of datagrid columns
For cn As Integer = 0 To TotalDatagridviewColumns
row.Item(cn) = dr.Cells(cn).Value
Next
'Now add the row to Datarow Collection
dt.Rows.Add(row)
Next
'Now return the data table
Return dt
Catch ex As Exception
Return Nothing
End Try
End Function
このサイトからの抜粋です: http://www.sourcehints.com/articles/how-to-convert-datagridview-data-to-datatable.html