2016-08-09 12 views
0

WPFフォームにデータを挿入する際に問題が発生しました。コードにエラーはありませんが、クエリが正常に実行されますが、データベースをチェックするとデータがないことが確認されます。以下にコードを示します。SQLコマンドは正常に実行されますが、データはWPFフォームに挿入されません

+0

どのようなデータベースですか?そこに明示的な取引がありますか? –

+0

成功したかどうかはどうやって知りますか? int count = command.ExecuteNonQuery();挿入される行の数を調べます。 –

+0

@DheerajRoy構文エラーがないため、SQL Serverにクエリを貼り付けると正常に実行されます。 –

答えて

0

悲しみを与えるパラメータの周りに引用符がある可能性があります。下のコードを試して、それがうまくいくかどうかを確認してください。

try { 
    Connection.Open(); 
    string query = "Insert into checkouts(cnic,medicine,next_trip) VALUES(@c,@m,@n)"; 
    SqlCommand command = new SqlCommand(query, Connection); 
    command.Parameters.AddWithValue("@c", cnic_box.Text.Replace("-","")); 
    command.Parameters.AddWithValue("@m", med_box.Text); 
    command.Parameters.AddWithValue("@n",Convert.ToDateTime(date_box.Text).ToString("yyyy-MM-dd")); 
    Connection.Close(); 
    return (command.ExecuteNonQuery() > 0); 
} 
catch (Exception ex) 
{ 
    Connection.Close(); 
    return false; 
} 

編集

明示的にデータをコミットするにはこれでクエリを交換してください:

string query = "BEGIN TRANSACTION Insert into checkouts(cnic,medicine,next_trip) VALUES(@c,@m,@n) COMMIT TRANSACTION"; 
+0

まだ動作していません... –

+0

@BilalAmjadコード内でトランザクションを使用していますか?トランザクションを終了し、データを保持するために新しいトランザクションを開く必要がありますか? –

+0

@BilalAmjadちょうどその場合の編集を参照してください... –

0

クエリ

からクエリのVALUES部から単一引用符を削除します
bool insert() 
{ 
    try 
    { 
     Connection.Open(); 
     string query = "Insert into checkouts(cnic,medicine,next_trip) VALUES(@c, @m, @n)"; 
     SqlCommand command = new SqlCommand(query, Connection); 
     command.Parameters.AddWithValue("@c", cnic_box.Text.Replace("-","")); 
     command.Parameters.AddWithValue("@m", med_box.Text); 
     command.Parameters.AddWithValue("@n",Convert.ToDateTime(date_box.Text).ToString("yyyy-MM-dd")); 
     command.ExecuteNonQuery(); 
     Connection.Close(); 
     return true; 
    } 
    catch (Exception ex) 
    { 
     Connection.Close(); 
     return false; 
    } 
} 
関連する問題