MVC中通过.edmx调用存储过程处理返回值

CREATEPROCEDUMVC4中用ADO.NET实体模型添加了数据库中的存储过程,存储过程带返回值,在.edmx中被定义为ObjectParameter类型,那我在程... CREATE PROCEDUMVC4中用ADO.NET实体模型添加了数据库中的存储过程,存储过程带返回值,在.edmx中被定义为ObjectParameter类型,那我在程序中该如何处理这个类型啊,
代码:
存储过程
ALTER proc [dbo].[Movies_Create]

@Title nvarchar(100),
@ReleaseDate DateTime,
@GenreName nvarchar(50),
@Price decimal(18,2),
@Rating nvarchar(50),
@Result int output
as
set @Result=0
begin
insert Movies(Title,ReleaseDate,GenreName,Price,Rating) Values(@Title,@ReleaseDate,@GenreName,@Price,@Rating)
set @Result=1
end

在.edmx中生成的是
public virtual int Movies_Create(string title, Nullable<System.DateTime> releaseDate, string genreName, Nullable<decimal> price, string rating, ObjectParameter result)
{.....
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("Movies_Create", titleParameter, releaseDateParameter, genreNameParameter, priceParameter, ratingParameter, result);
}

在程序中调用是:
public ActionResult Create(string Title, string ReleaseDate, string Genres_List, decimal Price, string Rating)
{
int Result = 0;
movies.Movies_Create(Title, Convert.ToDateTime("ReleaseDate"), Genres_List, Price, Rating, Result);//就是这里的Result报错,说的是类型无法转换
if (Result == 1) {
......
}
else
{
.....
}

}
展开
 我来答
kucai_3000
2013-10-31 · TA获得超过220个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:248万
展开全部
int r=0;
System.Data.Objects.ObjectParameter result = new System.Data.Objects.ObjectParameter("Result",System.Data.DbType.Int32);
movies.Movies_Create(Title, Convert.ToDateTime("ReleaseDate"), Genres_List, Price, Rating, result);
r=(int)result.Value;//r就是你所需要的返回值
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式