The Copy Method of DataTable is used to Copy the whole table to another data table.
But
How to copy selective columns of data table to another data table?
The following VB.NET Code snippet is used to Copy some columns of data table to another table.
It copies
1.EmpId
2.FirstName
3.DateOfJoin
Columns into a new data table.
Private Function CopyColumnsToDataTable(ByVal SourceTable As DataTable) As DataTable
Dim DestTable As DataTable = new DataTable()
'Copy Only three columns from the datatable
Dim strColsToExport() As String={"EmpID","FirstName","DateOfJoin"}
DestTable = sourceTable.DefaultView.ToTable("tempTableName", false, strColsToExport)
Return DestTable
End Function
The following code populates a data table EmpTable with 5 Columns
1. EmpID
2. First Name
3. Last Name
4. Address
5. date of join
Private Sub PopulateDataTable()
Dim sourceDt As DataTable = New DataTable("EmpTable") Dim DestDt As DataTable
Dim Col1 As DataColumn = sourceDt.Columns.Add("EmpID", Type.GetType("System.Int32"))
col1.AllowDBNull = false col1.Unique = true
sourceDt.Columns.Add("FirstName", Type.GetType("System.String")) sourceDt.Columns.Add("LastName", Type.GetType("System.String")) sourceDt.Columns.Add("Address", Type.GetType("System.String")) sourceDt.Columns.Add("DateOfJoin", Type.GetType("System.DateTime"))
'Add Some rows to data table
Dim dataRow As DataRow
dataRow = sourceDt.NewRow()
dataRow (0) = 10001 dataRow (1) = "Alan" dataRow (2) = "Broad" dataRow (3) = Convert.ToDate ("12\10\2001")
sourceDt.Rows.Add( dataRow)
dataRow = sourceDt.NewRow()
dataRow (0) = 10002 dataRow (1) = "Bob" dataRow (2) = "Evan" dataRow (3) = Convert.ToDate ("01\02\2003")
sourceDt.Rows.Add( dataRow)
sourceDt.AcceptChanges()
'Populate EmpID, FirstName and DateOfJoining Columns into a new data table
DestDt = CopyColumnsToDataTable (sourceDt)
'Binding it to a datagridview
Me.DataGridView1.DataSource = DestDt
End Sub
For more details, visit http://vijirajkumar.blogspot.com/2009/06/copy-selective-columns-of-data-table-to.html
|
No responses found. Be the first to respond and make money from revenue sharing program.
|