Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[SQL CE 3.5] 2 Queries in einem Command?
CaptainIglo
myCSharp.de - Member



Dabei seit:
Beiträge: 366
Herkunft: Feldkirch - Österreich

Themenstarter:

[SQL CE 3.5] 2 Queries in einem Command?

beantworten | zitieren | melden

Hallo,

ich arbeite hier mit einer SQl Compact Edition 3.5 SP1 Datenbank und c# / .net 2.0 und wenn ich in einem Command 2 Queries (z.b. "INSERT INTO ....; SELECT @@IDENTITY;") ausführen will, bekomme ich immer einen SQL-Error an der der Stelle des 2. Query ("There was an error parsing the query. [ Token line number = 2,Token line offset = 2,Token in error = SELECT ]").

Wie kann ich das Problem lösen?
Gehen muss es doch irgendwie, da das SQL Management Studio das ja auch kann...

mfg
Capt.Iglo
private Nachricht | Beiträge des Benutzers
icedre
myCSharp.de - Member



Dabei seit:
Beiträge: 106

beantworten | zitieren | melden

Wieso packst du die beiden Befehle nicht in eine Stored Proc und rufst im SqlCommand einfach die Stored Proc auf?
private Nachricht | Beiträge des Benutzers
CaptainIglo
myCSharp.de - Member



Dabei seit:
Beiträge: 366
Herkunft: Feldkirch - Österreich

Themenstarter:

beantworten | zitieren | melden

Weil der SQL CE keine Stored Procedures unterstützt und ich die Queries erst zur Laufzeit zusammenbaue...
private Nachricht | Beiträge des Benutzers
icedre
myCSharp.de - Member



Dabei seit:
Beiträge: 106

beantworten | zitieren | melden

Dann führ halt 2 SqlCommands aus...
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von icedre am .
private Nachricht | Beiträge des Benutzers
CaptainIglo
myCSharp.de - Member



Dabei seit:
Beiträge: 366
Herkunft: Feldkirch - Österreich

Themenstarter:

beantworten | zitieren | melden

Das Problem ist, dass ich mehrere hundert Queries habe (Code wurde von einer "vollwertigen" DB auf CE portiert), welche teilweise so aufgebaut sind und alle umzubauen sehr viel Arbeit wäre...
private Nachricht | Beiträge des Benutzers
icedre
myCSharp.de - Member



Dabei seit:
Beiträge: 106

beantworten | zitieren | melden

Also 2 SELECT Statements funktionieren bei mir problemlos (getestet mit SQL Server 2005 Standard)....


            SqlDataAdapter da = new SqlDataAdapter("select top 1 * from table_a;select top 1 * from table_b;", con);
            con.Open();
            DataSet ds = new DataSet();
            da.Fill(ds);
            con.Close();

Dann hab ich 2 Tables in meinem DataSet...
private Nachricht | Beiträge des Benutzers
CaptainIglo
myCSharp.de - Member



Dabei seit:
Beiträge: 366
Herkunft: Feldkirch - Österreich

Themenstarter:

beantworten | zitieren | melden

Ich verwende den SQL Server COMPACT EDITION und dort geht das eben nicht...
private Nachricht | Beiträge des Benutzers
icedre
myCSharp.de - Member



Dabei seit:
Beiträge: 106

beantworten | zitieren | melden

Wo ist dann dein Problem???
Die Antwort auf deine Frage hast du dir ja schon selbst gegeben und eine Alternative hab ich dir genannt....
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3.767
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

Hallo CaptainIglo,

der SQL Compact Server kann nicht mehrere SQL-Kommandos auf einmal.

Du musst jedes Kommando einzeln ausführen, das ist aber ganz einfach :

string[] sqlstr2 = sqlstr.Split(';');
conn.Open();
foreach (string sqlstr3 in sqlstr2)
{
	DbCommand cmd2 = CreateCommand(sqlstr3, conn);
	anz = cmd2.ExecuteNonQuery();
}

Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
CaptainIglo
myCSharp.de - Member



Dabei seit:
Beiträge: 366
Herkunft: Feldkirch - Österreich

Themenstarter:

beantworten | zitieren | melden

Ich mache es jetzt so wie BerndFfm vorgeschalgen hat, da ich das Ausführen der Command sowieso an einer Stelle zusammengefasst habe, muss allerdings noch etwas "Tricksen" mit den ExecuteScalar/ExecuteReader...
private Nachricht | Beiträge des Benutzers