vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: DataTable zu XML 
Autor: Manfred X
Datum: 26.05.14 13:22

Du könntest eine neue Tabelle erstellen, deren Schema nur die
benötigten Spalten enthält und die Daten-Zellen kopieren.

Public Class TableHelpers
 
    ''' <summary>Kopieren einer Datatable mit Spaltenauswahl</summary>
    ''' <param name="source">zu kopierende Datztable</param>
    ''' <param name="columnnames">Namen der zu kopierenden Spalten</param>
    Public Shared Function CopyTable(ByVal source As DataTable,
                      ByVal columnnames() As String) As DataTable
 
        If source Is Nothing Or columnnames Is Nothing Then Return Nothing
 
        Dim destination As New DataTable
 
        With source
            For i As Integer = 0 To .Columns.Count - 1
                If Contains(columnnames, .Columns(i).ColumnName) Then
                    destination.Columns.Add(CopyColumn(.Columns(i)))
                End If
            Next i
 
            For r As Integer = 0 To .Rows.Count - 1
                Dim row As DataRow = destination.NewRow
                Dim cd As Integer = -1
                For c As Integer = 0 To .Columns.Count - 1
                    If Contains(columnnames, .Columns(c).ColumnName) Then
                        cd += 1
                        row(cd) = .Rows(r)(c)
                    End If
                Next c
                destination.Rows.Add(row)
            Next r
        End With
 
        Return destination
    End Function
 
 
    ''' <summary>Kopieren einer Datacolumn</summary>
    ''' <param name="column">zu kopierende Datacolumn</param>
    Public Shared Function CopyColumn(ByVal column As DataColumn) As DataColumn
 
        If column Is Nothing Then Return Nothing
 
        Dim c As New DataColumn
        With column
            c.AllowDBNull = .AllowDBNull
            c.ColumnName = .ColumnName
            c.Caption = .Caption
            c.DateTimeMode = .DateTimeMode
            c.DataType = .DataType
            c.DefaultValue = .DefaultValue
            c.MaxLength = .MaxLength
            c.ReadOnly = .ReadOnly
            c.Unique = .Unique
        End With
 
        Return c
    End Function
 
 
    Private Shared Function Contains(ByVal arr() As String, _
             tofind As String) As Boolean
 
        For Each item As String In arr
            If item.Trim.ToUpper = tofind.Trim.ToUpper Then Return True
        Next item
        Return False
    End Function
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DataTable zu XML1.593hoff0126.05.14 08:37
Re: DataTable zu XML978Manfred X26.05.14 13:22
Re: DataTable zu XML1.070hoff0127.05.14 08:28

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel