.NET SqlCe "Create Table" und "insert into"
-
Guten Morgen Leute,
spiel grad bischen mit dem sql Ce .NET Dingens rum. Da es mit .NEt und Datenbanke zutun hab, hab ich mich entschieden es hier rein zu tun, wg. der größeren Resonanz;)
Also folgends:
string strSQL = "CREATE TABLE Archive (ChronologicalID INT IDENTITY not null PRIMARY KEY," + "TagID SMALLINT," + "LogTimeOA real," + "BinaryData VARBINARY(256)," + "BinarySize SMALLINT," + "ValueTypeID SMALLINT)"; using (var cmd = new SqlCeCommand(strSQL, db)) { cmd.ExecuteNonQuery(); }
Diese Tabelle hat ne Autowert spalte "ChronologicalID", wenn ich nun eine Zeile anfügen möchte mit instert into :
using (SqlCeCommand com = new SqlCeCommand( "INSERT INTO Archive (TagID, LogTimeOA , BinaryData, BinarySize, ValueTypeID) " + "VALUES (@tagID,@logTimeOA,@binaryData,@binarySize,@valueTypeID)", con)) { com.Parameters.AddWithValue("@tagID", id); com.Parameters.AddWithValue("@logTimeOA", timestamp.ToOADate()); com.Parameters.AddWithValue("@binaryData", value); com.Parameters.AddWithValue("@binarySize", value.Length); com.Parameters.AddWithValue("@valueTypeID", valdid); com.ExecuteNonQuery(); }
kommt der fehler bzw. Exception bei der ausführung des INSERT INTO commands:
Die Spalte darf keine NULL-Werte enthalten. [ Column name = ChronologicalID,Table name = Archive ]
Was ich nich versteh, klar dar der Schlüsselspalte keine null Werte enthalten, aber ich dachte er generiert jetzt nen auto inkrementieren Wert da hinzu!???
-
Probier mal dein ChronicalID beim Insert mit als Parameter zu übergeben, aber nicht zu füllen.
-
ne geht nicht dann kommt:
Parameterized query 'INSERT INTO Archive (TagID, LogTimeOA , BinaryData, BinarySize, ValueTypeID,ChronologicalID) VALUES (@tagID,@logTimeOA,@binaryData,@binarySize,@valueTypeID,@chronologicalID)' expects a parameter value which was not supplied.
Parameter name: @chronologicalIDwenn ich MS Access verwende, dann funktioniert das wenn ich da der chronologicalID ein COUNTER ist, muss ich diesen nich explizt in der insert comand angeben! woran könnte es noch liegen?
-
Das gehört ganz klar nach Datenbanken.
DROP den Table nochmal, leg ihn neu an, versuchs nochmal. Die Syntax müsste so passen, und laut MSDN kann SQL Server Compact Edition auch IDENTITY Spalten (wäre auch peinlich wenn nicht).
-
Ja ich weis, ist ehr ein fall von "Datenbanken"
Ja ich drop die Tabelle jedes mal, das hest sie wir so angelegt wie ich es geschrieben habe!! Was könnte ich noch tun.. man so kleinigkeiten bremsen ewig aus^^
-
Mach nen Incident bei MS auf
Oder warte bis du nach Datenbanken rüber verschoben wirst, vielleicht kann dir dort jmd. helfen.p.S.: was ganz klar nicht helfen würde, und daher gut ist dass du es nicht gemacht hast: genauere Daten angeben. Welche Version von SQL Server Compact Edition, welche Version von Visual Studio etc. Vollkommen wertlose Informationen, also bloss nicht angeben.
Einself.