【发布时间】:2019-02-16 06:44:21
【问题描述】:
我正在尝试执行一个接受参数并返回参数的存储过程。当我在 Management Studio 中单独运行该过程时,一切正常。但是,如果我尝试从代码中运行该过程,则会收到“Execution Timeout Expired”错误。我怀疑我没有正确传递输出参数:
List<SqlParameter> parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter("@BankType", "Checking"));
parameters.Add(new SqlParameter("@VendorEmail", "vendorEmail@yahoo.com"));
parameters.Add(new SqlParameter("@ID", 12345));
SqlParameter outputParameter = new SqlParameter();
outputParameter.ParameterName = "@Confirm";
outputParameter.SqlDbType = System.Data.SqlDbType.Bit;
outputParameter.Direction = System.Data.ParameterDirection.Output;
parameters.Add(outputParameter);
myEntity.Database.ExecuteSqlCommand("exec TestStoredProc @BankType, @VendorEmail, @ID, @Confirm out", parameters.ToArray());
【问题讨论】:
-
我查看了您的建议,但该建议并未解决我的问题。
-
为什么您会看到执行超时并认为这是因为您传递的参数错误?如果它说这是一个执行超时,你应该假设它就是这样,除非你能证明不是这样。错误是否总是在设定的秒数后发生?您是否尝试过增加超时?通过 SSMS 运行需要多长时间?
标签: c# entity-framework