vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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

ADO.NET / Datenbanken
Re: einfaches Datenbankupdate (Durchnummerieren) 
Autor: Manfred X
Datum: 26.01.11 22:28

Hallo!

Das hängt davon ab, ob das Anzeige-Control, das Du verwendest
Datenbindung möglich macht oder direkt Daten aus einer Datenbank
(z.B. per ADO/SQL) laden kann. Das sollte in der Doku stehen.

Du könntest auch das DatagridView-Control einsetzen und die
Tabelle direkt binden. Mit ein paar Zeilen läßt sich auch eine
Verschiebe-Operation per Maus realisieren.

Hier ein einfaches Beispiel.
Eine Zeile mit einem Doppelclick der rechten Maustaste auf den Rowheader
fürs Verschieben anmelden und mit einem weiteren Doppelclick an die
Zielposition verschieben. Die Verschiebung findet in der gebundenen
Datatable statt. Die Nummern-Spalte wird dabei sofort auf den neuen
Stand gebracht, so dass die Verschiebung nur in der Contentspalte
sichtbar wird

Public Class Form1
    Dim dt As New DataTable
    Dim bs As New BindingSource
    Dim MoveRowQuellIndex As Integer
    Private Sub Form1_Load(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles MyBase.Load
 
        bs.DataSource = dt
        DataGridView1.DataSource = bs
        dt.Columns.Add("Nummern", GetType(UInteger))
        dt.Columns.Add("Content", GetType(String))
 
        For i As Integer = 0 To 99
            Dim row As DataRow = dt.NewRow
            row.Item(0) = i + 1 
            row.Item(1) = "Content in Zeile " & CStr(i + 1)
            dt.Rows.Add(row)
        Next i
 
        For i As Integer = 0 To DataGridView1.Columns.Count - 1
            DataGridView1.Columns(i).SortMode = _
            DataGridViewColumnSortMode.NotSortable
        Next i
        MoveRowQuellIndex = -1
    End Sub
 
    Private Sub RowHeaderMouseDoubleClick(ByVal sender As Object, _
             ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) _
             Handles DataGridView1.RowHeaderMouseDoubleClick
 
        If e.Button = Windows.Forms.MouseButtons.Right Then
            If e.RowIndex >= 0 Then
                If MoveRowQuellIndex >= 0 Then
                    'Verschiebung durchführen
                    MoveTableRow(MoveRowQuellIndex, e.RowIndex)
                    ResetRowMove()
                Else
                    'Quelle der Verschiebung notieren
                    MoveRowQuellIndex = e.RowIndex
                    DataGridView1.Cursor = Cursors.Cross
                    DataGridView1.TopLeftHeaderCell.Value = _
                    " [" & CStr(MoveRowQuellIndex) & "]"
                End If
            Else
                ResetRowMove()
            End If
        End If
 
    End Sub
 
    Private Function MoveTableRow(ByVal quellindex As Integer, _
        ByVal zielindex As Integer) As Boolean
        If quellindex < 0 Or quellindex >= dt.Rows.Count Then Return False
        If zielindex < 0 Or zielindex >= dt.Rows.Count Then Return False
        If quellindex = zielindex Then Return True
 
        Dim row As DataRow = dt.NewRow
        For i As Integer = 0 To dt.Columns.Count - 1
            row.Item(i) = dt.Rows(quellindex).Item(i)
        Next i
        dt.Rows.RemoveAt(quellindex)
        dt.Rows.InsertAt(row, zielindex)
        For i As Integer = 0 To dt.Rows.Count - 1
            dt.Rows(i).Item("Nummern") = i + 1
        Next i
        Return True
    End Function
 
    Private Sub ResetRowMove()
        MoveRowQuellIndex = -1
        DataGridView1.Cursor = Cursors.Default
        DataGridView1.TopLeftHeaderCell.Value = ""
    End Sub
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
einfaches Datenbankupdate (Durchnummerieren)1.172Hänk26.01.11 15:10
Re: einfaches Datenbankupdate (Durchnummerieren)936Hänk26.01.11 16:05
Re: einfaches Datenbankupdate (Durchnummerieren)807Manfred X26.01.11 19:14
Re: einfaches Datenbankupdate (Durchnummerieren)895Hänk26.01.11 19:31
Re: einfaches Datenbankupdate (Durchnummerieren)976Manfred X26.01.11 22:28
Re: einfaches Datenbankupdate (Durchnummerieren)751Hänk27.01.11 09:43

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