1

SQLを使用して、コンボボックスに表示する顧客「forename」、「surname」、および「customerid」を検索しようとしています。

     string strSql = "SELECT customerID&\" \" & forename &\" \" & surname AS FullName, surname FROM customer WHERE [customerID]='" + txtCustomerID.Text +"'";

このコードでは、「データの不一致の例外」が発生しますが、これは、文字列を使用してintを検索しているためだと思いますか?

4

2 に答える 2

1

これを変更するだけです: '' は int であるため、使用する必要はありません。

string strSql = @"SELECT customerID +'\' + forename + '\' + surname AS FullName, surname FROM customer WHERE [customerID]=" + txtCustomerID.Text;

しかし、他の人が言ったように、これは文字列連結を使用して SQL クエリを作成するのは良い習慣ではなく、ユーザーから取得したパラメーターまたはデータを使用する場合はさらに多くの場合です。

于 2013-01-09T16:50:52.543 に答える
0

誰もが言うように; テキスト フィールドからクエリを作成しないでください。パラメータ化されたクエリを使用してください。

SqlCommand sqlQuery = new SqlCommand("SELECT customerID, forename + ' ' + surname AS FullName FROM customer WHERE customerID = @customerID", sqlConnection);
sqlQuery.Parameters.AddWithValue("@customerID", Int32.Parse(txtCustomerID.Text));

でエラーチェックを行うこともできますtxtCustomerID.Text

于 2013-01-09T21:24:31.670 に答える