连字符在SQL SELECT语句

连字符在SQL SELECT语句

问题描述:

这是我最简单的SELECT语句:连字符在SQL SELECT语句

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”,它工作正常。

+2

请显示你的C#代码。 – Talljoe 2011-05-03 16:13:35

+0

Item是一个varchar列还是一个int列? – Josh 2011-05-03 16:17:39

+0

@Josh it is varchar – Nick 2011-05-03 16:20:19

尝试使用参数化的SQL字符串,而不是和你会避免这样的问题,以及像SQL注入其他:

adapter = new SqlDataAdapter("select * from ProductDimensions where [email protected]"; 
adapter.Parameters.Add("@Item", SqlDbType.NChar, 15, "100-1000"); 

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

+0

在过去的一个小时里,我尝试了这个代码以及我可以想出的每一个变化。同样的结果连字号码不起作用,非连字号做。我试图将列的数据类型更改为char,varchar和nvarchar,但都没有运气。此时我想尖叫。 – Nick 2011-05-03 17:16:36

+0

@Nick你正在过滤哪一列数据?是纯文本吗?你不是试图在一个范围上过滤吗? – w69rdy 2011-05-03 17:22:02

+0

It's varchar,我不是在范围上过滤,它只是一个带连字符的零件号。 – Nick 2011-05-03 17:25:05