2016-10-18 9 views
0

내가받을 다음과 같은 오류 :DataContext.ExecuteQuery 매개 변수는 발행

Procedure or function 'procTestReport' expects parameter '@StartDate', which was not supplied.

나는 다음과 같은 코드를 실행하면 :

String[] args = new String[2]{StartDate.ToShortDateString(), EndDate.ToShortDateString()}; 

lst = dbContext.ExecuteQuery<Summary>("procTestReport", args).ToList<Summary>(); 

가 나는 다른 방식으로 제공 될 예정 패스 인수인가를? https://msdn.microsoft.com/en-us/library/bb361109.aspx

+0

매개 변수 이름을 –

+0

@viveknuna로 지정해야합니다. 예를 들어 어떻게 보여줄 수 있습니까? – MilesMorales

답변

0

을 당신이 대신 사용할 수있는 저장 프로 시저를 실행해야하는 경우 :

SqlConnection con = new SqlConnection("your ConnectionString"); 

SqlCommand cmd = new SqlCommand("your SP_Name", con); 
cmd.CommandType = CommandType.StoredProcedure; 

cmd.Parameters.Add(new SqlParameter("param name", "param value")); 
cmd.Parameters.Add(new SqlParameter("param2 name", "param2 value")); 
. 
. 
. 
con.Open(); 
SqlDataReader reader = cmd.ExecuteReader(); 
con.Close(); 

SqlDataAdapter adapter = new SqlDataAdapter(cmd); 
DataTable dt = new DataTable(); 
adapter.Fill(dt); 

return dt; 

dt 저장 프로 시저의 반환을 포함을 내가 올바르게 사용하고 같은 다음 링크에서 보인다.

LINQ를 사용할 필요가있는 경우,이

dataContext.ExecuteCommand("EXEC usp_SomeProcedure {0}, {1}, {2}", param1, param2, param3); 
+0

이 이해되었지만 당점에서와 같이 이전 코드에 따라 datacontext를 사용했습니다. – MilesMorales

+0

네, 그 트릭을 했어, 고마워! – MilesMorales

3

당신은 당신의 SQL 문에 매개 변수를 선언 할 필요가보십시오. 예 :

lst = dbContext.ExecuteQuery<Summary>("EXEC dbo.procTestReport @StartDate={0}, @EndDate={1}", args).ToList<Summary>();