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

ADO.NET / Datenbanken
Re: vb 2010 und accessdatenbank 
Autor: ModeratorDaveS (Moderator)
Datum: 01.01.13 11:13

Also, ohne zu viel dazu zu sagen, eine etwas sauberere und logisch eher richtige Version als Tipp. Soweit ich den Sinn richtig verstanden habe.

Es ist aber u.a. nicht besonders effizient bei jedem Satz eine ganze Tabelle einzulesen nur um Vorhandensein des Satzes zu prüfen. Könntest du einmal an anderer Stelle machen. Alle notwendige Tabellen könntest du vorher laden.

Übrigens, wir vermeiden meistens GoTo, da es schnell zu unübersichtlichem Code und Problemen bei Fehlerbehandlung führt.
    Private bolEnd, bolUpdate As Boolean
 
    Public Sub Daten_schreiben(DBPath As String, Table As String, ByVal Daten() _
      As Object)
        Dim conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath
 
        Dim ds As New DataSet
        Dim dt As DataTable
        Dim dr As DataRow
 
        Try
            Using da As New OleDbDataAdapter("Select * From " & Table, conStr),
                 cb As New OleDbCommandBuilder(da)
                da.Fill(ds, Table)
                dt = ds.Tables(Table)
                dt.PrimaryKey = New DataColumn() {dt.Columns(0)}
                'Prüfen ob Datensatz vorhanden ist
                dr = dt.Rows.Find(Daten(0))    
                If dr IsNot Nothing Then
                    ' Abfragefenster 
                    ' starten, wie mit
                    'dem vorhandenen Datesatz umgegangen werden soll
                    frmUpdate.ShowDialog()
                    Select Case True
                        Case bolEnd
                            ' Nix machen
                            MessageBox.Show("Vorgang wurde abgebrochen", _
                              "Meldung")
                            Exit Sub
                        Case bolUpdate
                            ' Bestehenden Datensatz ändern
                            dr.BeginEdit()
                            dr.ItemArray = Daten
                            dr.EndEdit()
                        Case Else
                            ' Alten Satz löschen
                            dr.Delete()
                    End Select
                Else
                    'Datensatz ist neu
                    dt.Rows.Add(Daten)
                End If
                ' DB updaten
                da.Update(ds, Table)
            End Using
 
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
    Dim satz() As Object = New Object() {6, 124, DateTime.Now, "blahblah"}
    Daten_schreiben("|DataDirectory|\MeineDB.mdb", "MeineTabelle", satz)

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
vb 2010 und accessdatenbank7.478volki280426.12.12 18:49
Re: vb 2010 und accessdatenbank5.092effeff27.12.12 11:53
Re: vb 2010 und accessdatenbank5.270JangoF27.12.12 15:21
Re: vb 2010 und accessdatenbank4.810volki280428.12.12 08:38
Re: vb 2010 und accessdatenbank4.823ModeratorFZelle28.12.12 12:52
Re: vb 2010 und accessdatenbank4.879volki280428.12.12 19:09
Re: vb 2010 und accessdatenbank4.823ModeratorDaveS28.12.12 20:06
Re: vb 2010 und accessdatenbank4.844volki280429.12.12 10:49
Re: vb 2010 und accessdatenbank4.916ModeratorFZelle29.12.12 12:47
Re: vb 2010 und accessdatenbank4.890volki280429.12.12 15:28
Re: vb 2010 und accessdatenbank4.807Manfred X29.12.12 18:19
Re: vb 2010 und accessdatenbank5.180ModeratorDaveS29.12.12 16:19
Re: vb 2010 und accessdatenbank4.838volki280429.12.12 20:45
Re: vb 2010 und accessdatenbank4.763ModeratorDaveS30.12.12 11:20
Re: vb 2010 und accessdatenbank4.886ModeratorDaveS30.12.12 11:46
Re: vb 2010 und accessdatenbank4.969volki280430.12.12 11:57
Re: vb 2010 und accessdatenbank4.985effeff30.12.12 11:51
Re: vb 2010 und accessdatenbank4.892volki280430.12.12 12:03
Re: vb 2010 und accessdatenbank4.730ModeratorDaveS30.12.12 12:46
Re: vb 2010 und accessdatenbank4.974volki280430.12.12 14:27
Re: vb 2010 und accessdatenbank4.737ModeratorDaveS30.12.12 15:18
Re: vb 2010 und accessdatenbank4.842volki280430.12.12 15:43
Re: vb 2010 und accessdatenbank4.711volki280430.12.12 19:08
Re: vb 2010 und accessdatenbank4.696ModeratorDaveS31.12.12 12:58
Re: vb 2010 und accessdatenbank4.824volki280431.12.12 14:57
Re: vb 2010 und accessdatenbank4.915ModeratorDaveS01.01.13 11:13
Re: vb 2010 und accessdatenbank4.693volki280401.01.13 14:34
Re: vb 2010 und accessdatenbank4.705gnomhawaii28.01.13 10:11
Re: vb 2010 und accessdatenbank4.832ModeratorDaveS01.02.13 18:13
Re: vb 2010 und accessdatenbank4.660Dopem01.02.13 17:42
Re: vb 2010 und accessdatenbank4.859ModeratorDaveS01.02.13 18:12

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