在sql select语句中连字符

Nic*_*ick 2 c# sql sql-server visual-studio-2010

这是我非常简单的选择声明:

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);
Run Code Online (Sandbox Code Playgroud)

就像我说的,如果我输入一个没有连字符的数字,例如'1000',它就可以了.

Iai*_*ard 5

尝试使用参数化的SQL字符串,你将避免像这样的问题,以及SQL注入之类的其他问题:

adapter = new SqlDataAdapter("select * from ProductDimensions where Item=@Item";
adapter.Parameters.Add("@Item", SqlDbType.NChar, 15, "100-1000");
Run Code Online (Sandbox Code Playgroud)

(你可能需要调整SqlDbType和长度)