连接字符串在SQL中不起作用

时间:2015-02-19 14:39:23

标签: c# sql-server

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看起来很好,但它没有选择任何记录

2 个答案:

答案 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内容中的字母大小写与表格中的字母大小不同,它也会产生这种效果。