매개 변수화 된 SQLCommand를 실행하려고합니다.이 매개 변수는 1 값을 반환해야합니다. 대신 빈 집합을 반환하고 예외는 throw되지 않고 프로그램은 계속 진행됩니다. 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# 코드는 다음과 같다 : 3 개 개의 매개 변수가
SqlCommand commandSelect = new SqlCommand(query, conn);
foreach (string[] p in pars)
{
commandSelect.Parameters.AddWithValue("@" + p[0], p[2]);
}
SqlDataReader res = commandSelect.ExecuteReader();
은 통과하고 내가 디버거에서하는 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를 통해 이러한 쿼리를 실행할 때 결과가 있습니까? –
명령 텍스트는 query와 동일합니다. 매개 변수 이름을 실제 값으로 대체하는 또 다른 속성이 있습니까? – kyooryu