2017-05-30 9 views
1

関連する複数の質問がありますが、いずれも私の問題を解決していません。 私はsqliteデータベースに接続するC#(WPF)アプリケーションを持っています。ディーラーとオーダーの2つのモデルクラスとデータベース内の対応する2つのテーブルがあります。 SQLロジックエラーまたはデータベースを逃す -WPF SQLiteクエリ例外

は私がディーラーテーブルでCRUD操作を行うが、注文テーブルで同じことをやろうとしたとき、私は例外を取得することができています。私は、関連するコードの一部を貼り付けています:

ディーラー

using(SQLiteConnection conn = new SQLiteConnection(connectionString)) { 
conn.Open(); 
using(SQLiteCommand cmd = new SQLiteCommand(conn)) { 
    cmd.CommandText = "INSERT INTO Dealer(name, address, contact, note) VALUES (@Name, @Address, @Contact, @Note)"; 
    cmd.Prepare(); 
    cmd.Parameters.AddWithValue("@Name", dealer.Name); 
    cmd.Parameters.AddWithValue("@Address", dealer.Address); 
    cmd.Parameters.AddWithValue("@Contact", dealer.Contact); 
    cmd.Parameters.AddWithValue("@Note", dealer.Note); 
    try { 
    result = cmd.ExecuteNonQuery(); 
    } 

ため

using(SQLiteConnection conn = new SQLiteConnection(connectionString)) { 
conn.Open(); 
using(SQLiteCommand cmd = new SQLiteCommand(conn)) { 
    cmd.CommandText = "INSERT INTO Order(dealer_id, note) VALUES (@DealerId, @Note)"; 
    cmd.Prepare(); 
    cmd.Parameters.AddWithValue("@DealerId", order.DealerId); 
    cmd.Parameters.AddWithValue("@Note", order.Note); 
    try { 
    result = cmd.ExecuteNonQuery(); 
    } 

私が注文のcmd.ExecuteNonQuery();の文で例外を取得するために。

私はカラム名の綴りを確認して、同じ例外を再度返したSELECT * FROM Orderを試しました。

SELECT name FROM sqlite_master WHERE type='table' AND name='Order';上記のの注文の場合は、テーブルが存在し、正しいテーブル名が返されているかどうかを確認してください。

助けてください。前もって感謝します。あなたは[ ... ]を使用して、たとえば、それを引用する必要がありますので

答えて

3

ORDERは、SQLiteのの予約キーワードです:

cmd.CommandText = "INSERT INTO [Order] (dealer_id, note) VALUES (@DealerId, @Note)"; 

のSQLiteのキーワードを引用する4つの方法があります:https://sqlite.org/lang_keywords.html

は、
+0

これは機能しました。どうもありがとうございます.. – Abdullah