Hallo Pat,

eine Möglichkeit wäre eine Stored Procedure in der Jet-DB anzulegen.
Dies geht meines Wissens nach seit Access2000.

Dann kannst Du die ID einfach zurückgeben.



Mit OleDb muußt Du auf jeden Fall einen OleDbRowUpdatedEventHandler
hinzufügen um an die ID zu kommen.

Hab mal eine meiner Functionen zerhackt... kann also sein,
dass es nicht gleich geht.

Eine gute Lösung, den Namen des ID-Feldes an den Handler zu übergeben
habe ich nicht gefunden.
Deswegen habe ich in einem Modul eine Globale Variable definiert.

Gruß, Chris
        Function addNew()
            Dim SQL As String = "Select * from Tabelle"

                dim nn = New OleDbConnection(GetDBConnectionString)
            cnn.Open()
            Dim cmd As OleDbCommand = New OleDbCommand(SQL, CNN)
            Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
            Dim cmdBuilder As OleDbCommandBuilder = New OleDbCommandBuilder(da)
            Dim ds As DataSet = New DataSet

            ds.Tables(aktTable).Rows.Add(newRow)
                Dim newRow As DataRow = ds.Tables(aktTable).NewRow()

[ .... Daten in newRow einfügen]

            AddHandler da.RowUpdated, New OleDbRowUpdatedEventHandler(AddressOf 
OnRowUpdated)

                gblVarRowPK="ID_FeldName"
            da.Update(ds, aktTable)
            RemoveHandler da.RowUpdated, New 
OleDbRowUpdatedEventHandler(AddressOf OnRowUpdated)

            'Und hier ist die neue ID
            AddNewByArr = newRow(PK)
            cnn.lose()
        End Function

        Private Shared Sub OnRowUpdated(ByVal sender As Object, ByVal args As 
OleDbRowUpdatedEventArgs)
            Dim NEWID As Integer
            Dim da As OleDbDataAdapter = sender
            Dim conn As OleDbConnection = da.SelectCommand.Connection
            Dim myCmd As OleDbCommand = New OleDbCommand("SELECT @@IDENTITY", 
conn)
            If args.StatementType = StatementType.Insert Then
                NEWID = CInt(myCmd.ExecuteScalar())
               'NEEDS MODULE gblVarRowUpdated!!!!!!!!
                   args.Row(gblVarRowPK) = NEWID

            End If
        End Sub

    Public Module gblVarRowUpdated
        'NEEDED BY db.OnRowUpdated!!!!!!!!
        Public gblVarRowPK As String
    End Module
> -----Ursprüngliche Nachricht-----
> Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Auftrag von Claudius Ceteras
> Gesendet: Montag, 29. August 2005 14:05
> An: [email protected]
> Betreff: RE: [Asp.net] mehrere @@Identity Werte auslesen
>
>
> > in ASP schön und gut aber wie das ganze in .NET?
>
> Oh... Stimmt ja...
>
> Also wenn Du alles in ne entsprechende Datatable packst und dann den
> DataAdapter(+CommandBuilder) drüber jagst, dann solltest Du in dem
> entsprechenden Feld danach die IDs haben...
>
> Gruss,
>
> Claudius
>
> _______________________________________________
> Asp.net Mailingliste, Postings senden an:
> [email protected]
> An-/Abmeldung und Suchfunktion unter:
> http://www.glengamoi.com/mailman/listinfo/asp.net

_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an