vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 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: Effiziente Übergabe von Datset mit zugehörigen Dataadaptern 
Autor: Soenke1492
Datum: 01.03.13 03:42

Hallo FZelle,

Vielen Dank für die tolle HIlfe und sorry für die späte Rückmeldung.

Die beschriebene Funktion funzt super bis auf eine Ausnahme und bei der finde ich keine Lösung.

Ich habe eine Auftragstabelle mit einer Autowert-Spalte ID. Diese Tabelle lade ich wie folgt in mein Dataset:
        'Lade die Auftrags-Tabelle
        cmd_auftraege.CommandText = "SELECT * from auftraege"
        cmd_auftraege.Connection = New OleDb.OleDbConnection( _
          Settings1.Default.con_ksmm)
        da_auftraege.SelectCommand = cmd_auftraege
        da_auftraege.Fill(ds_ksmm, "t_auftraege")
        ds_ksmm.Tables("t_auftraege").PrimaryKey = New DataColumn() _
          {ds_ksmm.Tables("t_auftraege").Columns("id")}
        ds_ksmm.Tables("t_auftraege").Columns("id").AutoIncrement = True
        ds_ksmm.Tables("t_auftraege").Columns("id").AutoIncrementStep = -1
        ds_ksmm.Tables("t_auftraege").Columns("id").AutoIncrementSeed = -1
Wenn ich jetzt mit der von Dir beschriebenen Funktion ein Insert in der DB durchführen will, dann schlägt der Commandbuilder fehl mit der Information, dass der Selectcommand keine Basistabelleninformationen beinhalten würde. Ich verstehe es nicht, da durch "*" doch alle Felder ausgewählt sind, oder?
Hier mein Code (Fehler in der Zeile wo ich das GetUpdateCommand aufrufe):
    Public Sub DatensatzSpeichern_datarowarray(ByVal Daten As DataTable, ByVal _
      datarowarray() As DataRow)
        Dim AbfrageString As String = String.Format("SELECT * FROM " & _
         "[{0}]", Daten.TableName)
        MsgBox("In Datensatzspeichern_datarowarray")
        Using DatenAdapter As New OleDb.OleDbDataAdapter(AbfrageString, _
         Settings1.Default.con_ksmm)
            Dim oledbcb As New OleDb.OleDbCommandBuilder(DatenAdapter)
            MsgBox("Abfragestring:" & AbfrageString)
            MsgBox("Select: " & DatenAdapter.SelectCommand.CommandText)
            MsgBox("update: " & oledbcb.GetUpdateCommand.CommandText)
            MsgBox("insert: " & oledbcb.GetInsertCommand.CommandText)
            AddHandler DatenAdapter.RowUpdated, _
               New OleDb.OleDbRowUpdatedEventHandler(AddressOf OnRowUpdated_id)
 
            DatenAdapter.Update(datarowarray)
 
        End Using
 
    End Sub
Kannst Du mir nochmal aus der Patsche helfen?

Vielen Dank und Viele Grüße,

Sönke
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Effiziente Übergabe von Dataset mit zugehörigen Dataadaptern2.807Soenke149209.02.13 12:25
Re: Effiziente Übergabe von Datset mit zugehörigen Dataadapt...1.275ModeratorFZelle09.02.13 19:58
Re: Effiziente Übergabe von Datset mit zugehörigen Dataadapt...1.263Soenke149201.03.13 03:42
Re: Effiziente Übergabe von Datset mit zugehörigen Dataadapt...1.230ModeratorFZelle01.03.13 10:36
Re: Effiziente Übergabe von Datset mit zugehörigen Dataadapt...1.212Soenke149201.03.13 10:46

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