DataContext.ExecuteQuery 参数问题
DataContext.ExecuteQuery parameter issues
我收到以下错误:
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>();
我传递的论点是否应该以不同的方式呈现?从下面的 link 来看,我似乎在正确使用它:
https://msdn.microsoft.com/en-us/library/bb361109.aspx
如果您需要执行存储过程,您可以改用:
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
包含存储过程的return。
如果有必要使用 LinQ,试试这个
dataContext.ExecuteCommand("EXEC usp_SomeProcedure {0}, {1}, {2}", param1, param2, param3);
您需要在 sql 语句中声明参数。例如:
lst = dbContext.ExecuteQuery<Summary>("EXEC dbo.procTestReport @StartDate={0}, @EndDate={1}", args).ToList<Summary>();
我收到以下错误:
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>();
我传递的论点是否应该以不同的方式呈现?从下面的 link 来看,我似乎在正确使用它: https://msdn.microsoft.com/en-us/library/bb361109.aspx
如果您需要执行存储过程,您可以改用:
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
包含存储过程的return。
如果有必要使用 LinQ,试试这个
dataContext.ExecuteCommand("EXEC usp_SomeProcedure {0}, {1}, {2}", param1, param2, param3);
您需要在 sql 语句中声明参数。例如:
lst = dbContext.ExecuteQuery<Summary>("EXEC dbo.procTestReport @StartDate={0}, @EndDate={1}", args).ToList<Summary>();