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
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