確かに、クエリを作成するためのより良い方法が必要です。特定の手段でチェックまたはフィルタリングせずにユーザーから直接入力を取得して、クエリに入力することはありません。これにより、アプリケーションが SQL インジェクションにさらされることになります。SQL パラメータを使用します。このリンクを参考にしてみてください: http://www.dotnetperls.com/sqlparameter
例 :
using (SqlCommand command = new SqlCommand("Select * from tableBooks WHERE @Field LIKE @Value", connection))
{
//
// Add new SqlParameter to the command.
//
command.Parameters.Add(new SqlParameter("Field", Textbox1.Text)); // I do not recommend using a textbox and letting the user write anything. You have to limit his choices by the fields in your table. Use a dropdownlist and limit his choices by meaningful fields in your "tableBooks" table.
command.Parameters.Add(new SqlParameter("Value", Textbox2.Text));
//
// Read in the SELECT results.
//
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
//GET YOUR BOOK
}
}
私のコメントに注意してください:
// テキストボックスを使用して、ユーザーに「キーワード」として何かを書かせることはお勧めしません。テーブルの列によって彼の選択を制限する必要があります。ドロップダウンリストを使用して、「tableBooks」テーブルから意味のある選択肢を選択することで、彼の選択肢を制限します。