2011-12-22 5 views
0

( ')によって誤ったMySQL構文が文字列で確認できますか?.NETでMySqlに送信する前に文字列パラメータの書式を設定するにはどうすればよいですか?

は、例えば:私たちは、私は "データベースに挿入する前に取り除く必要があり、高速

をBike'd。

+0

これを参照してください:http://stackoverflow.com/questions/229889/sanitizing-mysql-user-parameters –

+0

あなたは、すべてのMySQL特殊文字を処理する組み込みメソッドを探していますか?あなたが指定するキャラクター? – cadrell0

+0

私はMySQLのクエリに入れられる文字列を含む変数の束を持っているといいます。エラーを引き起こす文字を挿入するクエリに文字がないことを検証する方法がいくつか必要です。私が知っている唯一のキャラクターは、これがシンボル ' – MDL

答えて

0

簡単な答えは次のとおりです。

textValue = textValue.Replace("'","''"); 

しかし、コマンドパラメータを使用することは通常より良いです。

msnのプロパティSqlCommand.Parametersを参照してください。交換すると

例:

string sql = String.Format("SELECT * FROM tbl WHERE name ='{0}'", 
          textBox1.Value.Replace("'","''")); 
+0

ありがとう、私は文字列を変更するために.Replace方法が好きです。私は変数の文字列を取得した後、単にValue.Replace( "'"、 "")を実行できますか? – MDL

+0

例についてはEDITを参照してください。 –

5

MysqlCommandとコマンドパラメータを使用して挿入ステートメントを作成する必要があります。これにより、エスケープ処理が実行されます。

また、EscapeStringメソッドを使用することもできます。

0

あなたがた.csファイルに使用してSystem.Webディレクティブを追加し、置き換えられますHTMLEncodeを使用することができます

EDIT(Iは、MySQL同等のを知りません) '&aposと読み替えてください。それを読んだら、HTMLDecode()に電話して、'に変換し直す必要があります。

これは、フロントエンドでパラメータ化された文を作成する前に使用します。次に、最終結果をsqlCommandにパラメータとして渡します。

関連する問題