2012-01-10 58 views
0

我有一個爲新項目創建的SQLite表。SQLiteException「@Param1」語法錯誤附近的SQLite錯誤

表的CREATEINSERT命令定義如下:

public const string SQL_CREATE = "CREATE TABLE Tanks " + 
    "(LocID INTEGER, InUse INTEGER, Text1 TEXT, Description1 TEXT);"; 

public const string SQL_INSERT = "INSERT INTO Tanks " + 
    "(LocID, InUse, Text1, Description1) " + 
    "VALUES " + 
    "@LocID, @InUse, @Text, @Description); "; 

每當我試圖給我的第一值保存到表中,我得到了無益的消息,「的SQLite錯誤附近」 @LocID「語法錯誤。」

這裏是我的插入常規:

public static Tank New(Tank tank) { 
    tank.Result = 0; 
    using (SQLiteConnection con = GetConnection) { 
    try { 
     con.Open(); 
     using (SQLiteCommand cmd = new SQLiteCommand(Tank.SQL_INSERT, con)) { 
     cmd.Parameters.AddWithValue("@LocID", tank.LocationID); // = 1 
     cmd.Parameters.AddWithValue("@InUse", tank.InUse); // = 1 (for true) 
     cmd.Parameters.AddWithValue("@Text", tank.Text); // says "New Tank" 
     cmd.Parameters.AddWithValue("@Description", DBNull.Value); // I've tried "New Tank" and DBNull.Value 
     try { 
      tank.Result = cmd.ExecuteNonQuery(); 
     } catch (SQLiteException err) { 
      tank.Result = -1; 
      LogError("New(Tank)", err); 
      throw err; 
     } 
     } 
    } finally { 
     con.Close(); 
    } 
    } 
    return tank; 
} 

我沒有創建索引數據庫,因爲文件說,我不是插入的索引值:「每個表的每一行有64每個行的ROWID在同一個表中的所有行中都是唯一的「在同一頁中稍微向下,它表示」如果在插入上未指定ROWID,或者指定的ROWID具有NULL的值,則自動創建適當的ROWID。「來源:sqlite.org/autoinc

錯誤發生在ExecuteNonQuery()

我做錯了什麼?

在Win7 Visual Studio 2008(C#)中使用SQLite 3,目標是Windows Mobile 5(Pocket PC)。

+2

對於初學者來看你的插入語句後的值..不應該存在值(,,,)你有什麼參數值傳遞..?請展示坦克的結構。 – MethodMan 2012-01-10 20:44:16

回答

4

您在SQL_INSERT字符串中的@LocID之前缺少左括號。

public const string SQL_INSERT = "INSERT INTO Tanks " + 
    "(LocID, InUse, Text1, Description1) " + 
    "VALUES " + 
    "(@LocID, @InUse, @Text, @Description); "; 
+0

Man我討厭那樣的Noobie錯誤。 – jp2code 2012-01-10 21:19:05

2

您錯過了(。代之以:

public const string SQL_INSERT = "INSERT INTO Tanks " + 
"(LocID, InUse, Text1, Description1) " + 
"VALUES " + 
"(@LocID, @InUse, @Text, @Description); "; 
+0

廢話,廢話,廢話!我不敢相信我在這個問題上掙扎了很長時間。 – jp2code 2012-01-10 21:19:36

相關問題