连字符在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”,它工作正常。
答
尝试使用参数化的SQL字符串,而不是和你会避免这样的问题,以及像SQL注入其他:
adapter = new SqlDataAdapter("select * from ProductDimensions where [email protected]";
adapter.Parameters.Add("@Item", SqlDbType.NChar, 15, "100-1000");
(您可能需要调整SqlDbType
和长度)
请显示你的C#代码。 – Talljoe 2011-05-03 16:13:35
Item是一个varchar列还是一个int列? – Josh 2011-05-03 16:17:39
@Josh it is varchar – Nick 2011-05-03 16:20:19