1

Like Query を使用して特殊文字を検索すると、winform アプリケーションがクラッシュします。

strSQL = @"SELECT Patient_ID_Internal ,Patient_ID ,Patient_Title, Patient_Name,
                  Patient_MiddleName_Name, Patient_BirthDate,
                  Patient_RegDate,Patient_UIDNumber 
           FROM Patient_Master 
           WHERE Patient_ID LIKE +@paramPatient_ID +'%'
               AND Patient_Name LIKE +'%'+ @paramPatient_Name +'%'";

objOleDbCommand = new OleDbCommand(strSQL,
    Common.OleDbCommObject.OleDbConnectionObject);
objOleDbCommand.Parameters.AddWithValue("@paramPatient_ID", txtPatientId.Text);
objOleDbCommand.Parameters.AddWithValue("@paramPatient_Name", txtPatientName.Text);

同様のパラメータで、([]、!、@ など) などの特殊文字を渡すとクラッシュし、無効なパターン文字列というエラーが発生し、パラメータとして % を渡すと、DB からレコード全体が返されます。

4

1 に答える 1