tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
312
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    painky painky ist offline Rookie
    Registriert seit
    Aug 2004
    Beiträge
    8
    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
     

  2. #2
    M4st3r M4st3r ist offline Mitglied Brokat
    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

  3. #3
    painky painky ist offline Rookie
    Registriert seit
    Aug 2004
    Beiträge
    8
    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

  1. Antworten: 1
    Letzter Beitrag: 14.10.07, 22:19
  2. Oracle: Select gibt unter 2 Where bedingungen keine Daten aus
    Von Gray im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 18.04.07, 14:18
  3. C# SELECT liefert kein Ergebnis
    Von Deletemaster im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 05.02.07, 08:24
  4. [Illustrator CS] plötzlich keine Zahlen mehr
    Von akrite im Forum Vektor-Programme
    Antworten: 0
    Letzter Beitrag: 18.05.05, 10:11
  5. Grafikkarte liefert plötzlich Blaustich
    Von Michiseba im Forum Hardware
    Antworten: 3
    Letzter Beitrag: 03.05.05, 12:10

Stichworte