我有这段代码
string strSQLQuery = "SELECT " + strFieldName + " FROM " + strTableName +
" WHERE " + strFieldName + " = @Value";
sqlCmd.CommandText = strSQLQuery;
sqlCmd.Connection = con;
sqlCmd.Parameters.AddWithValue("@Value", strFieldValue);
resultValue = sqlCmd.ExecuteScalar();
我的strFieldValue是“IGEM - 意大利”
如果我直接执行它而没有参数,则执行
string strSQLQuery = "SELECT " + strFieldName + " FROM " + strTableName +
" WHERE " + strFieldName + " = '" + strFieldName + "'";
请告知
答案 0 :(得分:1)
此代码的目的是什么?
您似乎构建了查询,但是您没有在字段名称中处理特殊字符,您应该将其分隔:
string strSQLQuery =
"SELECT [" + strFieldName + "] " +
"FROM [" + strTableName + "] " +
"WHERE [" + strFieldName + "] = @Value";
该查询即使在strFieldName = "IGEM-Italy"
时也能正常工作,而如果字段名称包含连字符,则第一个查询将失败。
然而,这个语句将始终返回相同的内容,因为您将返回要过滤的字段。
您的第二个查询有:
" WHERE " + strFieldName + " = '" + strFieldName + "'"
这不是一回事 - 我认为这是一个错字。
答案 1 :(得分:0)
也许你应该用单引号括起strFieldValue。此外,是数据类型字符串?
的strFieldValue答案 2 :(得分:0)
我对.Net没有经验。
答案 3 :(得分:-1)
我在SQL数据库中实际发现它是' - '连字符,但我发送的代码是EM Dash“ - ”