ここで見た他の回答には基本的に同意しますが、回答には別の方法をとります。
SQL を学習しようとしている場合は、より良い形式を使用するように自分自身を訓練することが不可欠です。これはささいなことのように思えるかもしれませんが、実際には、より理解しやすい書式を使用する と、読みやすく、理解しやすく、特に編集しやすくなります。
そして、c# での c/c++ 型のブロック引用符が本当に恋しいのですが、何十年にもわたる VB プログラミングのおかげで、引用符がないとやや醜い要件に順応してきました。あなたの例を比較してください:
txt = "SELECT * from D1Table WHERE Synopsis LIKE '%" + txtBText + "%' OR Author1 LIKE '%" + txtBText + "%' OR Author2 LIKE '%" + txtBText + "%' OR Author3 LIKE '%" + txtBText + "%' OR Author4 LIKE '%" + txtBText + "%' OR Author5 LIKE '%" + txtBText + "%' OR Biography1 LIKE '%" + txtBText + "%' OR Biography2 LIKE '%" + txtBText + "%' OR Biography3 LIKE '%" + txtBText + "%' OR Biography4 LIKE '%" + txtBText + "%' OR Biography5 LIKE '%" + txtBText + "%' OR Title LIKE '%" + txtBText + "% ' OR Position1 LIKE '%" + txtBText + "%'OR Position2 LIKE '%" + txtBText + "%' OR Position3 LIKE '%"+ txtBText + "%' OR Position4 LIKE '%" + txtBText + "%' OR Position5 LIKE '%" + txtBText + "%' ";
同等のものに:
txt = ""
+ " SELECT * "
+ " from D1Table "
+ " WHERE Synopsis LIKE '%" + txtBText + "%' "
+ " OR Author1 LIKE '%" + txtBText + "%' "
+ " OR Author2 LIKE '%" + txtBText + "%' "
+ " OR Author3 LIKE '%" + txtBText + "%' "
+ " OR Author4 LIKE '%" + txtBText + "%' "
+ " OR Author5 LIKE '%" + txtBText + "%' "
+ " OR Biography1 LIKE '%" + txtBText + "%' "
+ " OR Biography2 LIKE '%" + txtBText + "%' "
+ " OR Biography3 LIKE '%" + txtBText + "%' "
+ " OR Biography4 LIKE '%" + txtBText + "%' "
+ " OR Biography5 LIKE '%" + txtBText + "%' "
+ " OR Title LIKE '%" + txtBText + "%' "
+ " OR Position1 LIKE '%" + txtBText + "%' "
+ " OR Position2 LIKE '%" + txtBText + "%' "
+ " OR Position3 LIKE '%" + txtBText + "%' "
+ " OR Position4 LIKE '%" + txtBText + "%' "
+ " OR Position5 LIKE '%" + txtBText + "%' "
;
明らかに読みやすく、理解しやすくなっています。すぐにはわかりませんが、編集も簡単です。UNION を追加して 2 つのテーブルをチェックする必要があるとします。
txt = ""
// <CUT from here
+ " SELECT * "
+ " from D1Table "
+ " WHERE Synopsis LIKE '%" + txtBText + "%' "
+ " OR Author1 LIKE '%" + txtBText + "%' "
+ " OR Author2 LIKE '%" + txtBText + "%' "
+ " OR Author3 LIKE '%" + txtBText + "%' "
+ " OR Author4 LIKE '%" + txtBText + "%' "
+ " OR Author5 LIKE '%" + txtBText + "%' "
+ " OR Biography1 LIKE '%" + txtBText + "%' "
+ " OR Biography2 LIKE '%" + txtBText + "%' "
+ " OR Biography3 LIKE '%" + txtBText + "%' "
+ " OR Biography4 LIKE '%" + txtBText + "%' "
+ " OR Biography5 LIKE '%" + txtBText + "%' "
+ " OR Title LIKE '%" + txtBText + "%' "
+ " OR Position1 LIKE '%" + txtBText + "%' "
+ " OR Position2 LIKE '%" + txtBText + "%' "
+ " OR Position3 LIKE '%" + txtBText + "%' "
+ " OR Position4 LIKE '%" + txtBText + "%' "
+ " OR Position5 LIKE '%" + txtBText + "%' "
// CUT to here>
// VV add a UNION
+ " UNION ALL "
// <PASTE here
+ " SELECT + "
+ " from D2Table " // <-- change the table name here
+ " WHERE Synopsis LIKE '%" + txtBText + "%' "
+ " OR Author1 LIKE '%" + txtBText + "%' "
+ " OR Author2 LIKE '%" + txtBText + "%' "
+ " OR Author3 LIKE '%" + txtBText + "%' "
+ " OR Author4 LIKE '%" + txtBText + "%' "
+ " OR Author5 LIKE '%" + txtBText + "%' "
+ " OR Biography1 LIKE '%" + txtBText + "%' "
+ " OR Biography2 LIKE '%" + txtBText + "%' "
+ " OR Biography3 LIKE '%" + txtBText + "%' "
+ " OR Biography4 LIKE '%" + txtBText + "%' "
+ " OR Biography5 LIKE '%" + txtBText + "%' "
+ " OR Title LIKE '%" + txtBText + "%' "
+ " OR Position1 LIKE '%" + txtBText + "%' "
+ " OR Position2 LIKE '%" + txtBText + "%' "
+ " OR Position3 LIKE '%" + txtBText + "%' "
+ " OR Position4 LIKE '%" + txtBText + "%' "
+ " OR Position5 LIKE '%" + txtBText + "%' "
// ^^ change these column names if needed
;
ここで省略されているのは、UNION の場合、SELECT は同じ数の列を返す必要があり、列のデータ型は互換性がなければならないということです。したがって、D1Table と D2Table の列が異なる場合は、"*" を削除して、SELECT ごとに互換性のある列リストを作成する必要があります。