c# erstellte ID von INSERT in Tabelle aktualliesieren

w_digger

Grünschnabel
Hallo alle zusammen,

ich denke ich habe hier ein Standartproblem mit ID's.

Ich habe ein Tabelle mit einer ID, die ein autoincrement-Feld ist.
Auf dem normalen Weg (s. unten) ziehe ich mir die Daten und sagen wir mal MAX(ID_Feld) ist gleich 20.

cmd = new SqlCommand("SELECT ID_Feld, Text_Feld FROM Tabelle");
cmd.Connection = this.conn;
cmd.CommandType = CommandType.Text;
builder = new SqlCommandBuilder(da);
da.SelectCommand = cmd;
da.FillSchema(DS, SchemaType.Source, "tabelle");
da.Fill(ds, "tabelle");

Jetzt schreibe ich eine neue Row in die Tabelle. Diese Row bekommt somit die ID mit dem Wert 21 gefüllt.

DataRow row = ds.Tables[0].NewRow();
row[1] = "Text";
ds.Tables[0].Rows.Add(row);
ds.update(ds, "tabelle");

Danach steht der Datensatz auch in der Tabelle. Hat jetzt aber in der Zwischenzeit ein andere ein Satz in die Tabelle geschrieben, so hat mein Datensatz in der Datenbank die ID = 22 und in meine ds.Tables[0] die ID = 21 womit ich ein gewaltiges Problem habe.

Meinetwegen kann ich kann ich mir auch die akt. ID nochmal abfragen, aber ich kann sie nicht in meine Tabelle schreiben, da das ID-Feld durch FillSchema schreibgeschützt ist.

Nehme ich FillSchema raus, so kann ich das Feld updaten, doch ändert sich somit der RowStatus und beim nächsten ds.update(ds, "tabelle") wird der Datensatz wieder mit verarbeitet.

Irgendwie stehe ich da vor einem Dilemma, was kann ich da machen. Ich denke mal, dass viele dieses Problem haben, aber ich habe noch nichts gefunden, was mir da weiter hilft.

Vielen Dank im Voraus
w_digger
 
Zurück