2011-05-03 106 views
2

這是我最簡單的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

回答

5

嘗試使用參數化的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