这是我非常简单的选择陈述:
select * from ProductDimensions where Item='100-1000'
当输入SSMS时,它会查询并返回结果。在VS中运行我的程序时,它什么都不返回。没有连字符的项目返回正常。是否需要一些特殊的语法才能使用我的C#代码?
C#代码:
adapter = new SqlDataAdapter("select * from ProductDimensions where Item='100-1000'", conn);
adapter.Fill(dataSet);
就像我说的,如果我输入一个没有连字符的数字,例如'1000',它就可以了。
答案 0 :(得分:5)
尝试使用参数化的SQL字符串,您将避免像这样的问题,以及SQL注入等其他问题:
adapter = new SqlDataAdapter("select * from ProductDimensions where Item=@Item";
adapter.Parameters.Add("@Item", SqlDbType.NChar, 15, "100-1000");
(您可能需要调整SqlDbType
和长度)