私のプログラムを通して、私はおそらく50かそこらのテキストボックスを様々な場所に持っています。私は何か(この場合は ' - > \')で一重引用符を置き換える方法を知っていますが、すべての単一テキストボックスに特定のコードを追加して追加するよりも、これを行うためのより良い方法が必要であると考えています。私はこれを行う必要があるので、このものがデータベースに送られるときに、一重引用符があればエラーになるからです。プログラムのすべてのテキストボックスが自動的にすべての一重引用符を\ 'に置き換えるように、既定のTextBoxコントロールの動作を変更する方法はありますか?私のプログラムのすべてのテキストボックスに 'とを置き換えます。
EDIT:
string statement = "select count(*) from users where username='@username'";
MySqlCommand command = new MySqlCommand(statement, conn);
command.Parameters.AddWithValue("@username", username);
if (Convert.ToInt32(command.ExecuteScalar()) == 1)
私はparamerterizedコードで遊んでてきた、これは私が今持っているものです。どのように私はそれを理解するから、ステートメント文字列は、基本的に以前と同じですが、私は(私は@ usernameという)パラメータを使用して知っている変数 "username"を持っていた場所、コマンドが作成されます。次に、parameters.addwithvalueで、パラメータusernameの代わりに、変数usernameにあるものを置き換えます。残念ながら、これは私のために働いていない、と私は本当にユーザー名はまだコマンドに立ち往生しているので、それがどのように役立つかわからない?
EDIT:、問題を発見声明の中で、あなたが「@ユーザー名」の周りに単一引用符を配置する必要はありません
ので、それは次のようになります。
string statement = "select count(*) from users where [email protected]";
私の投稿を編集しました。もう一度ご覧ください。これらのコメントにコードを投稿する方法がわからないので、そこに記述してください。 – zack
ありがとうございます。あなたは私にトンを助けた:D – zack
問題はありません。この変更により、巨大な種類のセキュリティ脆弱性が排除されました。 – cdhowie