vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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
DataAdapter dynamisch 
Autor: Bernd Podhradsky
Datum: 11.05.05 16:42

Hallo Leute!

Bin gerade dabei für zukünftige Projekte eine Datenklasse zu schreiben (von der alle Entitäten der Datenbank erben). Naja, jedenfalls hat diese Datenklasse eine Möglichkeit einen Dataadapter für eine bestimmte Tabelle in der Datenbank zu erhalten.

Dazu gibt es die function "GetDataAdapter", die einen neuen DataAdapter instanziert und die Commands zuweist. Nun meine Frage: Ich arbeite komplett ohne die VB.NET Wizards für's generieren von DataAdapters (klar, wenn ich dynamisch generieren muss, geht das ja nicht).

Blöderweise funktionieren nun meine Commands des Adapters nicht. Fill funktioniert (na gut, ein Select schaffe ich ja noch *gg*), aber bei INSERT geht's nicht.

Kurzer excerpt:

'Get the dataadapter
        lAdapter = Facade.HelperDatabase.GetAdapter("SELECT" & _
          "ID,TableName,RecordID,UserID FROM tabSystemLockedRecords", "INSERT" & _
          "INTO tabSystemLockedRecords(TableName, RecordID, UserID) VALUES (" & _
          "@TableName, @RecordID, @UserID); SELECT ID, TableName, RecordID," & _
          "UserID FROM tabSystemLockedRecords WHERE (ID = @@IDENTITY)", "UPDATE" & _
          "tabSystemLockedRecords SET TableName = @TableName, RecordID =" & _
          "@RecordID, UserID = @UserID WHERE (ID = @Original_ID) AND (RecordID" & _
          "= @Original_RecordID OR @Original_RecordID IS NULL AND RecordID IS" & _
          "NULL) AND (TableName = @Original_TableName OR @Original_TableName IS" & _
          "NULL AND TableName IS NULL) AND (UserID = @Original_UserID OR" & _
          "@Original_UserID IS NULL AND UserID IS NULL); SELECT ID, TableName," & _
          "RecordID, UserID FROM tabSystemLockedRecords WHERE (ID = @ID)", _
          "DELETE FROM tabSystemLockedRecords WHERE (ID = @Original_ID)")
 
            'Set the table property
            lTable.TableName = "tabSystemLockedRecords"
 
            'Fill the table
            lAdapter.Fill(lTable)
 
            'Create a new row
            lRow = lTable.NewRow
 
            'Enter the data for this row
            lRow.Item("TableName") = TableName
            lRow.Item("RecordID") = ID
            lRow.Item("UserID") = 1
 
            'Add the row to the datatable
            lTable.Rows.Add(lRow)
 
            'MsgBox(lTable.Rows.Count)
            'Update the data source
            lAdapter.Update(lTable)
Wie man sieht, den SQL-Code habe ich von einem Wizard (zum Testen) generieren lassen. Blöderweise bekomme ich bei "lAdapter.Update(lTable)", also in der letzten Zeile, einen Fehler der system.data zurück - leider ein nichtssagender Fehler.

Meine Frage: wie müssen die Paramter heißen? Woher weiß VB, welcher Paramter mit welchem Wert bestückt werden muss? Kann das so überhaupt funktionieren?

Vielen Dank für Eure Hilfe.

Liebe Grüße,
Bernd
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DataAdapter dynamisch1.275Bernd Podhradsky11.05.05 16:42
Re: DataAdapter dynamisch610ModeratorFZelle11.05.05 21:36
Re: DataAdapter dynamisch620spike2412.05.05 07:40
Re: DataAdapter dynamisch604Bernd Podhradsky12.05.05 09:19
Re: DataAdapter dynamisch610Bernd Podhradsky15.05.05 09:54

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