vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück

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

VB.NET - Fortgeschrittene
Re: Datensätze per loop eintragen 
Autor: ERBRU
Datum: 08.09.19 17:15

ich habe mal versucht ein Beispiel zu basteln, es macht noch nicht ganz was ich möchte

ich möchte ja das er ab Startdatum bis Enddatum in die Tabelle anlegt
nicht wie jetzt ein Datum (Datenzeile) hinzufügen.



Public Class Form1
    Private mDT As DataTable
    Private WithEvents mBS As BindingSource
    Private WithEvents DGV As DataGridView
    Private WithEvents btnAddNew As Button
    Private Rnd As New Random
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        CreateControls()
        CreateData()
 
        With DGV
            .DataSource = mBS
            .Columns(0).DefaultCellStyle.Alignment = _
            DataGridViewContentAlignment.MiddleRight
            .Columns(2).DefaultCellStyle.Format = "dd.MM.yyyy"
            .Columns(2).DefaultCellStyle.NullValue = ""
            .Columns(3).DefaultCellStyle.Format = "HH:mm"
            .Columns(3).DefaultCellStyle.NullValue = "00:00"
            .Columns(4).DefaultCellStyle.Format = "HH:mm"
            .Columns(4).DefaultCellStyle.NullValue = "00:00"
            .AutoResizeColumns()
            .AutoResizeRows()
        End With
        mBS.Position = mBS.Count - 1
    End Sub
 
    Private Sub btnAddNew_Click _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles btnAddNew.Click
 
        Dim D As Date = _
        Date.Today.AddDays(Rnd.Next(0, 1))
 
        Dim DR As DataRow = mDT.NewRow
        Dim NewID As Integer = GetNewID()
        DR.Item(0) = NewID
        DR.Item(1) = Format(D, "ddd")
        DR.Item(2) = D
        DR.Item(3) = Format(Now, "HH:mm")
        DR.Item(4) = Format(Now, "HH:mm")
        mDT.Rows.Add(DR)
 
        Dim Pos As Integer = _
        mBS.Find("ID", NewID)
 
        mBS.Position = Pos
    End Sub
 
    Private Sub CreateData()
        Dim i As Integer
        Dim DR As DataRow
 
        mDT = New DataTable
        With mDT
            .Columns.Add("ID", GetType(Integer))
            .Columns(0).AllowDBNull = False
            .Columns(0).Unique = True
            .Columns.Add("Tag", GetType(String))
            .Columns.Add("Datum", GetType(Date))
            .Columns.Add("Start", GetType(Date))
            .Columns.Add("Ende", GetType(Date))
            Dim D As Date
            For i = 1 To 15
                D = Date.Today.AddDays _
                (Rnd.Next(0, 5))
 
                DR = .NewRow
                DR.Item(0) = i
                DR.Item(1) = Format(D, "ddd")
                DR.Item(2) = D
                DR.Item(3) = Format(Now, "HH:mm")
                DR.Item(4) = Format(Now, "HH:mm")
                .Rows.Add(DR)
            Next
            .AcceptChanges()
        End With
 
        mBS = New BindingSource
        mBS.DataSource = mDT
        mBS.Sort = "ID"
    End Sub
 
    Private Function GetNewID() As Integer
        Dim DV As DataView = _
        DirectCast(mBS.List, DataView)
 
        Dim DRV As DataRowView
        Dim ID As Integer
        For Each DRV In DV
            If DRV.Item(0) IsNot DBNull.Value Then
 
                Dim i As Integer = _
                CType(DRV.Item(0), Integer)
 
                If i > ID Then
                    ID = i
                End If
            End If
        Next
        Return ID + 1
    End Function
 
    Private Sub CreateControls()
        Me.Size = New Size(650, 670)
        DGV = New DataGridView
        With DGV
            .SetBounds _
            (10, 10, _
            Me.ClientSize.Width - 20, _
            Me.ClientSize.Height - 70)
 
            .Anchor = AnchorStyles.Left Or _
            AnchorStyles.Top Or _
            AnchorStyles.Right Or _
            AnchorStyles.Bottom
 
            .DefaultCellStyle.Font = _
            New Font("Arial", 12)
 
            .ColumnHeadersDefaultCellStyle.Font = _
            New Font("Arial", 8, FontStyle.Bold)
        End With
        Me.Controls.Add(DGV)
 
        btnAddNew = New Button
        With btnAddNew
            .SetBounds _
            (Me.ClientSize.Width - 110, _
            DGV.Bottom + 10, _
            100, 40)
 
            .Anchor = AnchorStyles.Right Or _
            AnchorStyles.Bottom
 
            .Text = "Add New"
        End With
        Me.Controls.Add(btnAddNew)
    End Sub
 
    Private Sub mBS_PositionChanged _
    (ByVal sender As Object, _
    ByVal e As System.EventArgs _
    ) Handles mBS.PositionChanged
 
        If mBS.Position > -1 Then
            Dim DR As DataRow
            Dim DRV As DataRowView
 
            DRV = DirectCast(mBS.Current, DataRowView)
            DR = DRV.Row
 
            Me.Text = DR.Item(0).ToString & "; " & _
            DR.Item(1).ToString & "; " & _
            DR.Item(2).ToString
        End If
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datensätze per loop eintragen117ERBRU08.09.19 11:16
Re: Datensätze per loop eintragen67ERBRU08.09.19 17:15
Re: Datensätze per loop eintragen33HenryV09.09.19 12:12
Re: Datensätze per loop eintragen27ERBRU09.09.19 14:51
Re: Datensätze per loop eintragen25HenryV09.09.19 16:27
Re: Datensätze per loop eintragen24ERBRU09.09.19 18:51

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