ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
312
312
EMPFEHLEN
-
Hi,
ich habe ein schweres Problem auf das ich keine Lösung finde und ich hoffe das mir jemand weiter helfen kann! Ich speichere per Insert Daten über den SQLCommand von .Net in eine MS SQL Express Datenbank ab. Um an den PrimaryKey zu kommen mache ich gleich danach ein Select. Jedoch gibt das Select einen Leeren Reader zurück. Das komische an der Sache ist, nach einem Connect oder Reconnect funktioniert das ganze eine kurze Zeit und dann bekomme ich keine Daten mehr zurück. Ich bekomme auch keine Exception. Ich habe gestern gesucht und gesucht und nichts gefunden. Im Internet finde ich leider auch keine Hinweise.
Hier der funktionsaufruf:
_DBQuery("insert into process_steps (process_step,starttime_of_process_step,id_main_process_data,brick_side) values (" + forStep.ToString() + ",GETDATE()," + _CurrentMainProcessDataID.ToString() + "," + Brick_Side + ");", false);
Table = _DBQuery("select max(id) as id from process_steps;", true);
Reader = Table.CreateDataReader();
if (Reader.Read())
{
_CurrentProcessStepID = Convert.ToInt32(Reader["id"]);
}
und hier die Funktion
protected DataTable _DBQuery(String stmt, Boolean GetResult)
{
DBQueryMutex.WaitOne();
DataTable Result = new DataTable();
if (!GetResult)
_DBAgent.Insert(stmt);
else
Result = _DBAgent.Select(stmt);
DBQueryMutex.ReleaseMutex();
return Result;
}
Ich danke euch im Voraus!
MfG
Lars
-
10.12.08 14:14 #2
- Registriert seit
- Jan 2005
- Ort
- Frankfurt am Main
- Beiträge
- 297
Du kannst dir die neue ID einfach mit der gleichen Abfrage holen mit der du den Insert machst:
@@IDENTITY könnten dir hier weiter helfen. Beide geben den letzten Identitätswert zurück der in der aktuellen Sitzung erzeugt wurde.
Einfach ein "SELECT @@IDENTITY as MyNewId" an den Insert dranhängen und du solltest den neue Key bekommen...http://dirkgoldecker.spaces.live.com
. Microsoft Certified Technology Specialist
. Microsoft Certified Professional Developer
|-> Web Applications
-
Oh ja danke, ich weis auch nicht warum ich das immer anderes mache. Ist irgendwie so eine angewohnheit.
Aber daran lag es nicht. Ich habe den Fehler gefunden. Jedenfalls läuft es erschreckend lange ohne Probleme. Es war ein Threadüberschneidung im Spiel. Ich hatte zwar ein Mutex darum gemacht aber habe die Select Methode noch manchmal direkt aufgerufen. Ups
Danke
Gruss Lars
Ähnliche Themen
-
Erkennen ob Socketverbindung keine Daten liefert.
Von -Ener- im Forum PHPAntworten: 1Letzter Beitrag: 14.10.07, 22:19 -
Oracle: Select gibt unter 2 Where bedingungen keine Daten aus
Von Gray im Forum Relationale DatenbanksystemeAntworten: 5Letzter Beitrag: 18.04.07, 14:18 -
C# SELECT liefert kein Ergebnis
Von Deletemaster im Forum .NET Windows FormsAntworten: 2Letzter Beitrag: 05.02.07, 08:24 -
[Illustrator CS] plötzlich keine Zahlen mehr
Von akrite im Forum Vektor-ProgrammeAntworten: 0Letzter Beitrag: 18.05.05, 10:11 -
Grafikkarte liefert plötzlich Blaustich
Von Michiseba im Forum HardwareAntworten: 3Letzter Beitrag: 03.05.05, 12:10





Zitieren
Login





