我試圖執行參數化SQLCommand,它應該返回1值。相反,它返回一個空集,沒有拋出異常,程序只是繼續前進。SQLCommand不返回任何東西
這是查詢:
SELECT SUM(s.cost) AS cost
FROM Spending s JOIN Date d ON s.dateID = d.dateID
JOIN [Service category] sc ON s.[service categoryID] = sc.[service categoryID]
WHERE sc.category1 = 'Phone' AND s.personID = @person
AND d.month = @month AND d.year = @year
C#代碼如下:
SqlCommand commandSelect = new SqlCommand(query, conn);
foreach (string[] p in pars)
{
commandSelect.Parameters.AddWithValue("@" + p[0], p[2]);
}
SqlDataReader res = commandSelect.ExecuteReader();
在有3個參數傳遞,並且當我在調試器檢查的SqlCommand,它們被正確地傳遞。 @person是一個字符串,其他兩個是整數。
任何幫助,將不勝感激。
編輯: 我可能還要補充標準桿陣列的stucture:
pars[0][0] = "person"
pars[0][2] = "'IDString here'"
pars[1][0] = "month"
pars[1][2] = "2"
pars[2][0] = "year"
pars[2][2] = "2012"
可能是字符串大小寫與查詢中提供的大小寫不同 – Habib
在調用ExecuteReader的行上設置一個斷點,接受命令文本,通過SSMS運行它。當你通過SSMS運行這樣的查詢時,你會得到任何結果嗎? –
命令文本與查詢相同。是否有另一個屬性將實際值替換爲參數名稱? – kyooryu