2011-10-21 11 views
0

MySqlデータベースを照会し、Textbox.Textプロパティからユーザー定義変数を見つける正しい方法を見つけようとしています。私は一致のためにすべての行のすべてのセルを検索するために、where節のために何を置くべきか分からない。私は合体を見て、含まれていますが、どちらも本当に私に意味をなさないし、彼らは私の最良の選択肢であるかどうかは分かりません。あなたは検索したい各列を指定する必要がありますダイナミックな解決策がないとvb.netの検索プログラムのSqlクエリ

SELECT * FROM table WHERE (I dont know) = '" & searchBarTextVariable & "' 
+3

義務[SQLインジェクション](http://en.wikipedia.org/wiki/SQL_injection)コメント。 SQLクエリを作成するために文字列を連結することに注意してください。代わりにパラメータ化されたクエリを見てください。 – jadarnel27

答えて

1

:私は、クエリ文字列は次のようになりますことを考えています。これは、リレーショナルデータベースを扱う際の非常に基本的な部分です。 MySQLも例外ではありません。

@ jadarnel27のコメントで説明したように、代わりにパラメータを使用する必要があります。次のようなものがあります。

SELECT * 
FROM table 
WHERE someColumnA = @searchBarTextVariable 
    OR someColumnB = @searchBarTextVariable 
    OR someColumnC = @searchBarTextVariable 
    OR someColumnD = @searchBarTextVariable 
+0

これはパラメータを追加する最善の方法ですか、より良いオプションがありますか?MySqlCommand.CommandText = "SELECT * FROM tblTable WHERE TableID = @Parameter"; MySqlCommand.Parameters.Add(新しいSqlParameter( "@ Parameter"、parameterValue)) – MDL

+0

はい、正しい軌道に乗っています。私はちょうどパラメータを使用してすべての必要なオブジェクトを作成するコードセクションを記述していない。 – Yuck

+0

助けてくれてありがとうYuck! – MDL

0

すべての列を検索する特定の構文はありません。個別に列挙する必要があります。次のようにクエリを書くことができます。

SELECT * FROM table WHERE 
Field1 = '" & searchBarTextVariable & "' 
OR Field2 = '" & searchBarTextVariable & "' 
OR Field3 = '" & searchBarTextVariable & "' 
OR Field4 = '" & searchBarTextVariable & "' 
... 

実際にテキストであるフィールドのみをリストするか、変換エラーに注意してください。また、SQLインジェクションについても注意してください。