我正在尝试执行参数化的 SQLCommand,它应该返回 1 个值。相反,它返回一个空集,不抛出异常,程序继续运行。
这是查询:
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 是一个字符串,另外两个是整数。
任何帮助,将不胜感激。
编辑:我可能还应该添加 pars 数组的结构:
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"