Beim Arbeiten mit Datenbanken und Tabellen stößt man immer wieder auf folgende Thematik: Wie lässt sich der Autowert eines Datensatzs (bspw. ID) unmittelbar nach dem Hinzufügen eines neuen Datensatz ermitteln? Eine Möglichkeit ist die Abfrage "SELECT @@IDENTITY" auszuführen. Beispiel: ' DB-Verbindung herstellen und öffnen Dim Conn As OleDb.OleDbConnection Conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=...") Conn.Open() ' neuen Datensatz via INSERT INTO hinzufügen Dim SQL As String = "INSERT INTO (Feld1,Feld) VALUES (?, ?)" Using cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(SQL, Conn) cmd.Parameters.AddWithValue("Feld1", "Wert1") cmd.Parameters.AddWithValue("Feld2", "Wert2") cmd.ExecuteNonQuery() End Using ''' <summary> ''' Ermittelt den Autowert des zuletzt hinzugefügten Datensatzes ''' </summary> ''' <param name="Conn">OleDb-Connection Objekt</param> ''' <returns>Autowert</returns> Public Function GetAutoID(ByVal Conn As OleDb.OleDbConnection) As Integer Dim SQL As String = "SELECT @@IDENTITY" Using cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(SQL, Conn) Dim dr As OleDb.OleDbDataReader = cmd.ExecuteScalar() If dr.Read() Then Return dr.GetValue(0) End If End Using End Function Dieser Tipp wurde bereits 9.496 mal aufgerufen.
Anzeige
![]() ![]() ![]() Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 ![]() ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats Neu! sevEingabe 3.0 ![]() Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. |
||||||||||||||||
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. |