vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

ADO.NET / Datenbanken
Re: DGV an dynamische Tabellen binden 
Autor: Manfred X
Datum: 13.06.18 15:55

Hier ein einfaches Beispiel für freie Spaltendefinition mit
programmgesteuertem Schlüssel.
Wenn Du beim Erstellen einer numerischen oder Date-Spalte die
zulässige Spannweite oder beim Erstellen einer Stringspalte z.B. die
zulässige Länge abfragst und speicherst, kannst Du diese Restriktionen
in den Validierungsevents des Grid nutzen.
Public Class frmCreateTable
 
    Dim WithEvents dt As New DataTable
 
    Dim lblCreateColumn As New Label With
        {.Parent = Me, .Text = "  Spalte erstellen: ", _
         .AutoSize = False, .Width = 120}
    Dim WithEvents cboCreateColumn As New ComboBox With
        {.Parent = Me, .Left = 125, _
         .DropDownStyle = ComboBoxStyle.DropDownList}
 
 
    Dim WithEvents dgv As New DataGridView With _
        {.Parent = Me, .Top = 40, .Width = 400}
 
 
    Private Sub frmCreateTable_Load(sender As Object, _
        e As EventArgs) Handles MyBase.Load
        With cboCreateColumn.Items
            .Add("Boolean")
            .Add("Integer")
            .Add("Decimal")
            .Add("Bitmap")
            .Add("String")
        End With
        cboCreateColumn.SelectedIndex = 0
 
        Dim dc As DataColumn = dt.Columns.Add("Key", GetType(Integer))
        dc.ReadOnly = True
    End Sub
 
 
    Private Sub AddColumn()
 
        Dim cn As String = _
           InputBox("Bezeichnung der Spalte", "Spalte erstellen", "")
        If String.IsNullOrWhiteSpace(cn) Then Exit Sub
        If dt.Columns.Contains(cn) Then Exit Sub
 
        Dim r1 As DialogResult = DialogResult.No
        If dt.Rows.Count = 0 Then
            r1 = MsgBox _
              ("Spalte " & cn & "   Nullwerte zulassen?", MsgBoxStyle.YesNo)
        End If
 
        Dim r2 As DialogResult =
            MsgBox _
            ("Spalte " & cn & "   Eindeutige Werte notwendig?", _
            MsgBoxStyle.YesNo)
 
        Dim dc As DataColumn
        With dt.Columns
            Select Case cboCreateColumn.SelectedItem
                Case "Boolean"
                    dc = .Add(cn, GetType(Boolean))
                Case "Integer"
                    dc = .Add(cn, GetType(Integer))
                Case "Decimal"
                    dc = .Add(cn, GetType(Decimal))
                Case "Bitmap"
                    dc = .Add(cn, GetType(Bitmap))
                Case Else
                    dc = .Add(cn, GetType(String))
            End Select
        End With
 
        dc.AllowDBNull = r1 = DialogResult.Yes
        dc.Unique = r2 = DialogResult.Yes
        dgv.DataSource = dt
    End Sub
 
 
    Private Sub cboCreateColumn_DropDownClosed(sender As Object, e As _
      EventArgs) _
        Handles cboCreateColumn.DropDownClosed
        AddColumn()
    End Sub
 
 
    Private Sub dgv_DataError(sender As Object, e As _
      DataGridViewDataErrorEventArgs) _
        Handles dgv.DataError
 
        MsgBox(e.Exception.Message)
        e.Cancel = True
    End Sub
 
 
    Private Sub dt_TableNewRow(sender As Object, e As DataTableNewRowEventArgs) _
        Handles dt.TableNewRow
 
        If dt.Rows.Count = 0 Then
            e.Row.Item(0) = 1
        Else
            Dim k As Integer = 0
            For i As Integer = 0 To dt.Rows.Count - 1
                k = Math.Max(k, CInt(dt.Rows(i).Item(0)))
            Next i
            k += 1
            e.Row(0) = k
        End If
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DGV an dynamische Tabellen binden1.576Bazi13.06.18 13:39
Re: DGV an dynamische Tabellen binden921Manfred X13.06.18 14:51
Re: DGV an dynamische Tabellen binden909Bazi13.06.18 14:58
Re: DGV an dynamische Tabellen binden927Manfred X13.06.18 15:17
Re: DGV an dynamische Tabellen binden915Bazi13.06.18 15:47
Re: DGV an dynamische Tabellen binden908Manfred X13.06.18 15:55
Re: DGV an dynamische Tabellen binden870Bazi13.06.18 18:53
Re: DGV an dynamische Tabellen binden909Manfred X13.06.18 21:10
Re: DGV an dynamische Tabellen binden871Bazi13.06.18 22:27
Re: DGV an dynamische Tabellen binden932Manfred X14.06.18 10:57

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-2024 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