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 回答