【发布时间】:2013-08-27 18:37:22
【问题描述】:
我在这个网站上找到了答案,但没有一个有效。我正在尝试从 ASP.NET MVC Web api 中的简单存储过程返回结果。
这行得通:
ctx.Database.SqlQuery <model>("StoredProc 1251");
但是,我一直认为像这样包含内联参数是不好的做法。
我尝试过的其他方法都没有——这里有一些例子:
//Assuming this variable:
int intValue;
intValue = 1251;
// None of these variations that I have tried work:
ctx.Database.SqlQuery<model>("StoredProc @intValue= {0}", intValue);
ctx.Database.SqlQuery<model>("StoredProc @IntValue", 1251);
ctx.Database.SqlQuery<model>("StoredProc @IntValue", new SqlParameter("@IntValue",1251);
//And 6 or 7 others
都给我一个无用的SQL Server错误信息:
SP 附近的语法不正确
正确的语法是什么?
还不能回答我自己的问题,但我找到了答案:
在 stackoverflow 的其他地方找到了正确的语法,或者至少一个正确的语法选项——这个网站真的很棒——我几乎总是在这里找到我的答案!
var myInt = new SqlParameter("@IntVal", SqlDbType.Int);
pMeme_ck.Value = 1251;
return ctx.Database.SqlQuery<ClaimSummary>("EXEC StoredProcedureName @IntVal=@IntVal", myInt);
【问题讨论】:
-
什么是
SP?存储过程?如果是这样,请尝试EXEC SP @intValue。 -
是-但我实际上需要返回结果-不确定在这种情况下我将如何使用 exec:return ctx.Database.SqlQuery
( StoredOroc @intVal= {0}", myIntVal );
标签: c# sql-server asp.net-mvc stored-procedures