2017-11-28 10 views
0

)このエラー '{" SQLiteエラー\ r \ nnear \ "値\":構文エラー"}'。 に次のコードブロックを追加します。SQLiteコマンドによるSQLiteの挿入エラー(SQLiteエラー r nnear "値":構文エラー "}

using (SQLiteConnection connection = new SQLiteConnection()) 
    { 
     connection.ConnectionString = ConnectionString; 
     connection.Open(); 
     using (SQLiteCommand insertSQL = new SQLiteCommand(connection)) 
     { 
      insertSQL.CommandText = "INSERT INTO BetaValues(Name, Values) VALUES(@param1, @param2)"; 
      //insertSQL.CommandType = CommandType.Text; 
      insertSQL.Parameters.Add("@param1", DbType.String).Value = beta.Name.ToString(); 
      insertSQL.Parameters.Add("@param2", DbType.String).Value = beta.ValuesXML.ToString(); 
      insertSQL.ExecuteNonQuery(); 
     } 

myテーブルのデータ定義は次のとおりです。

CREATE TABLE BetaValues (
    idBetaValues INTEGER  PRIMARY KEY, 
    Name   STRING (20) NOT NULL 
          UNIQUE, 
    [Values]  TEXT  UNIQUE 
); 

私はこのエラーを回避するために頭を抱えていましたが、以前のエラーを受けている理由が見つかりません。

+1

'Values'はSQLの予約語です。 CREATE文と同じように、INSERT文で名前をエスケープする必要があります。 –

答えて

2

VALUESはSQL演算子なので、列を正しく識別するために区切り識別子を使用する必要があります。 SQLiteでは、カラム名の前後に角括弧[ColumnName]を追加することができます。なお、other quotes possibleもあります。すでに作成した作成クエリを見て、

INSERT INTO BetaValues(Name, [Values]) VALUES(@param1, @param2) 

のような挿入文を修正してください。

関連する問題