2016-12-04 15 views
2

C#のテーブルにレコードを挿入しようとしていますが、レコードをテーブルに挿入するためにクエリを実行するコード行に到達すると、このエラーが発生してまで次のようにSQLiteデータベースにデータを挿入しようとするとデータ型の不一致が発生する

An exception of type 'System.Data.SQLite.SQLiteException' occurred in System.Data.SQLite.dll but was not handled in user code

Additional information: datatype mismatch

私はデータベースにデータを挿入する必要があるコードは次のとおりです。

string stmt = string.Format("INSERT INTO quotes (id, user, quote, date) VALUES ('', '{0}', '{1}', '{2}')", person, quote, date); 

SQLiteCommand cmd = new SQLiteCommand(stmt, connection); 

int rowsAffected = cmd.ExecuteNonQuery(); 

personquotedateはすべての文字列であり、データベースの構造があります次のようになります。

id = INTEGER PRIMARY KEYuser = STRING(255)quote = STRING(255)date = STRING(255)

+0

にデータを挿入することができますvalues節)を整数(id)に変換します。 –

+0

missmatchの問題についてはわかりませんが、そのような文字列も書くことができますstring stmt = string.Format( "INSERT INTO quotes(user、quote、date)VALUES( '{0}'、 '{1}'、 '{ 2} ') "、人、引用、日付); idがautoincrementedの場合 –

+0

SQL PArametersを使用して開始します。テキストに 'O'Toole'のようなものが含まれているとクラッシュします。彼らは正しいタイプが渡されることを保証します – Plutonix

答えて

2

idがオートインクリメントされている場合は、あなたが文字列(の最初の要素を挿入しようとしているように見えます。このクエリ

​​
+0

作品、ありがとう.. – John

+0

それはあなたのために働く場合は、答えを受け入れることができます。 –

+0

私にできるだけ早く – John

関連する問題