【发布时间】:2014-09-04 13:45:37
【问题描述】:
我正在尝试从 C# MVC 控制器调用 SQL 服务器存储过程。存储过程的参数如下:
ALTER procedure [dbo].[spVehicleSearch360]
@strLocale nvarchar(10),
@xmlSearchCriteria xml,
@strSortBy nvarchar(30),
@strSortDir nvarchar(5),
@uidSessionId uniqueidentifier,
@iPage int = 1,
@iPageSize int = 10,
@iCount int output,
@iTotalCount int output,
@bShowResults bit = 1,
@xmlResults xml = null output,
@dtLastItemModified datetime = null output,
@uidVehicleInList uniqueidentifier = null
as
begin
.........
.........
.........
当我从我的控制器调用它时:
var search_results = db.spVehicleSearch(strLocale, xmlSearchCriteria, strSortBy, strSortDir, uidSessionId, iPage, iPageSize, iCount, iTotalCount, bShowResults, xmlResults, dtLastItemModified, uidVehicleInList);
存储过程的输出参数(参数 8、9、11、12)出现以下错误
Arugment [n]:无法从 [int/string/system.DateTime] 转换为 'System.Data.Objects.ObjectParameter'
我应该为这些参数传递什么?
(抱歉,如果这是一个非常基本的问题,我对 .net 很陌生)
谢谢
【问题讨论】:
-
我假设您使用的是实体框架?你的模型中
db.spVehicleSearch()的签名是什么? -
您应该传入与您期望的输出具有相同数据类型的变量。
-
@SvenGrosen 给你。它为麻烦的参数指定 ObjectParameter 但我不确定如何在传递它们之前声明它们: public virtual int spVehicleSearch(string strLocale, string xmlSearchCriteria, string strSortBy, string strSortDir, Nullable
uidSessionId, Nullable iPage, Nullable iPageSize, ObjectParameter iCount, ObjectParameter iTotalCount, Nullable bShowResults, ObjectParameter xmlResults, ObjectParameter dtLastItemModified, Nullable uidVehicleInList)
标签: c# .net sql-server asp.net-mvc stored-procedures