
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
{
.....
}
} 展开
代码:
存储过程
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
{
.....
}
} 展开
1个回答
展开全部
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就是你所需要的返回值
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就是你所需要的返回值
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询