C#...这是有效的
string sql = "SELECT * FROM STATEMENTS WHERE [idTrip] = '2015Q15'";
command.CommandText = sql;
但是当我尝试用如下变量替换'2015Q15'时,它不起作用
string sql = "SELECT * FROM STATEMENTS WHERE [idTrip] = '" + myVariable + "'";
command.CommandText = sql;
当我逐行运行时,我可以看到str sql看起来很好,但它没有选择任何记录
答案 0 :(得分:4)
试试这个:
command.CommandText = "SELECT * FROM STATEMENTS WHERE [idTrip] = @idTrip";
command.Parameters.AddWithValue("@idTrip", myVariable);
答案 1 :(得分:1)
除了SQL注入的危险......
您是否检查过myVariable中的前导或尾随空格?在myVariable上使用.Trim()来排除这种情况。我假设你已经检查了myVariable的内容是否正确?
如果仍然没有返回结果:使用SQL Server探查器跟踪实际到达服务器的SQL。捕获命令,在SQL Server Management Studio中执行它以确保它执行&产生预期的结果。
您的数据库是否配置为区分大小写?这可能是原因吗?如果myVariable内容中的字母大小写与表格中的字母大小不同,它也会产生这种效果。