Benutzer mit den meisten Antworten
SQL CE

Frage
-
Moin Community,
ich habe ein Problem mit der Zeile: cmd.ExecuteNonQuery();
Der If Zweig ausgeführt, wenn noch kein DB vorhanden ist,
im Else Zweig , wenn es die DB gibt.
Ist keine DB vorhanden, so wird diese angelegt und mit "cmd.ExecuteNonQuery();"
ausgeführt. Aber in dieser Zeile fliegt mir das Progrämmchen raus mit dem Fehler:
"SQL Exception wurde nicht behandelt". die Hilfe oder andere Beispiele, brachten
mir keine Erleuchtung, kann mir jemand kompetend helfen?
Danke Rainer
Genaue Fehlermeldung:
cmd.ExecuteNonQuery();
Fehler beim Analysieren der Abfrage. [ Token line number = 1,Token line offset = 154,Token in error = , ]
.Quelltext ...................Schnipp.....................
namespace CE_DB
{
public partial class Form1 :Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click( object sender, EventArgs e )
{
SqlCeEngine engine;
SqlCeConnection conn;
SqlCeCommand cmd;
using (conn = new SqlCeConnection(@" Data Source =C:\Work\Projekte\Visual Studio\Datenbanken\dbSmart.sdf"))
{
if (!File.Exists(conn.Database))
{
engine=new SqlCeEngine(conn.ConnectionString);
engine.CreateDatabase();
conn.Open();
cmd=new SqlCeCommand(
"CREATE TABLE tbKunden ("+
" kID numeric IDENTITY PRIMARY KeY, " +
" kName nvarchar(100) , " +
" kTelefon nvarchar(15)) , " , conn);
cmd.ExecuteNonQuery(); //<------ HIER-----------------------
}
else
{
engine=new SqlCeEngine(conn.ConnectionString);
conn.Open();
}
}
}
}
}.............Schnapp..............
Astronomers do it at Night
Antworten
-
Hi,
cmd=new SqlCeCommand(
"CREATE TABLE tbKunden ("+
" kID numeric IDENTITY PRIMARY KeY, " +
" kName nvarchar(100) , " +
" kTelefon nvarchar(15)) , " , conn);manchmal hilft es, sich das, was man da als String zusammenstellt, in eine Variable zu schreiben und sich deren Inhalt anzuschauen.
Dann wäre man auf das abschließende Komma bei "kTelefon nvarchar(15)) ," gekommen :)
Nimm das Komma da mal weg.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Olaf HelperMVP Freitag, 4. März 2011 11:21
- Als Antwort markiert Robert BreitenhoferModerator Montag, 7. März 2011 11:25
-
Hallo Rainer,
das steht sogar in der Exception.
System.Data.SqlServerCe.SqlCeException wurde nicht behandelt.
Message=Fehler beim Analysieren der Abfrage. [ Token line number = 1,Token line offset = 171,Token in error = , ]Übrigens, da ist noch ein Fehler: Eine Identity muss vom Typ Int oder BigInt sein; numeric und dann auch noch mit Default Werten geht nicht.
Olaf Helper
* cogito ergo sum * errare humanum est * quote erat demonstrandum *
Wenn ich denke, ist das ein Fehler und das beweise ich täglich
Blog Xing- Als Antwort markiert Robert BreitenhoferModerator Montag, 7. März 2011 11:24
Alle Antworten
-
Hi,
cmd=new SqlCeCommand(
"CREATE TABLE tbKunden ("+
" kID numeric IDENTITY PRIMARY KeY, " +
" kName nvarchar(100) , " +
" kTelefon nvarchar(15)) , " , conn);manchmal hilft es, sich das, was man da als String zusammenstellt, in eine Variable zu schreiben und sich deren Inhalt anzuschauen.
Dann wäre man auf das abschließende Komma bei "kTelefon nvarchar(15)) ," gekommen :)
Nimm das Komma da mal weg.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Olaf HelperMVP Freitag, 4. März 2011 11:21
- Als Antwort markiert Robert BreitenhoferModerator Montag, 7. März 2011 11:25
-
Hallo Rainer,
das steht sogar in der Exception.
System.Data.SqlServerCe.SqlCeException wurde nicht behandelt.
Message=Fehler beim Analysieren der Abfrage. [ Token line number = 1,Token line offset = 171,Token in error = , ]Übrigens, da ist noch ein Fehler: Eine Identity muss vom Typ Int oder BigInt sein; numeric und dann auch noch mit Default Werten geht nicht.
Olaf Helper
* cogito ergo sum * errare humanum est * quote erat demonstrandum *
Wenn ich denke, ist das ein Fehler und das beweise ich täglich
Blog Xing- Als Antwort markiert Robert BreitenhoferModerator Montag, 7. März 2011 11:24