vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Datenbanken · ADO.NET Allgemein   |   VB-Versionen: VB2005 - VB201501.12.15
Autowert eines mit INSERT INTO hinzugefügten Datensatzes ermitteln (ADO.NET)

Diese Funktion gibt den Autowert des zuletzt hinzugefügten Datensatzes zurück.

Autor:   Dieter OtterBewertung:  Views:  8.858 
www.tools4vb.deSystem:  WinXP, Win7, Win8, Win10, Win11kein Beispielprojekt 

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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

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.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle 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.