2012-02-21 26 views
0

私はWPFとExpression Blendを使用して、データを格納するデータベースとしてSQLiteを使用するアプリケーションをコーディングしています。ダブルクオート文字をTextBoxに入力しないようにするにはどうすればよいですか?

私はいくつかのTextBoxユーザーを入力することができる彼らは、データベースに追加または変更したいデータを作りました。しかし、ユーザが二重引用符文字を入力すると、文字列のクエリで二重引用符文字を使用しているため、例外が生成されます。

だから、ユーザーが二重引用符を直接入力しないようにする方法を探しています。出来ますか?

注:該当する場合は私が使用しているC#でSQLiteのの実装は、CSHARP - sqliteのです。

+0

それが書かれている前に、テキストボックスのコンテンツにアクセスできる場合は、別の文字に置き換えることをあなたがそれをリードバックするとき、あなたは二重引用符を戻すことができますしてみてください。または、引用符を空の文字列に置き換えてもかまいません。s = s.Replace( "\" "、" ") –

答えて

3

SQLを文字列として生成し、その文字列を実行するのではなく、パラメータ化されたクエリを使用する必要があります。ユーザーがテキストボックスに入力することができる二重引用符以外にも、たくさんのことがあります(前にコメントしたようにSQLインジェクションを調べるだけです)。そしてパラメータを使用するとすべてのケースが解決されます。あなたが何かを見逃してしまうすべてのケースを自分自身で処理しようとすると、誰かがそれを理解しているかどうかという疑問に過ぎません。

+0

+1この症状を治療するための症状ではありません。 – cadrell0

+0

ありがとうございました。これまでデータベースとSQLインジェクションを使ったことはありませんでした。私はパラメータ化されたクエリの詳細を読んで変更します。 – Armos

関連する問題