求解:使用EF执行存储过程时出现SqlParameterCollection 中已包含 SqlParameter。错误

问题描述

错误信息“System.ArgumentException”类型的未经处理的异常在EntityFramework.SqlServer.dll中发生其他信息:另一个SqlParameterCollection中已包含SqlParameter。出错代码:using(DbContextBasedb=newDbContextBase()){SqlParameter[]parms={newSqlParameter{ParameterName="tblName",Value="SMSTemplateSet"},newSqlParameter{ParameterName="columns",Value="*"},newSqlParameter{ParameterName="sortList",Value="IdDESC"},newSqlParameter{ParameterName="pageSize",Value=20},newSqlParameter{ParameterName="pageIndex",Value=1},newSqlParameter{ParameterName="strJoin",Value=""},newSqlParameter{ParameterName="strWhere",Value=""},newSqlParameter{ParameterName="strGroupBy",Value=""},newSqlParameter{ParameterName="recordsCount",Value=-1,Direction=ParameterDirection.Output}};varobj=db.Database.SqlQuery<SMSTemplate>("PRO_Paging@tblName,@columns,@sortList,@pageSize,@pageIndex,@strJoin,@strWhere,@strGroupBy,@recordsCount",parms);if(obj.Count()>0){varaaa=obj.ToList();List<SMSTemplate>list=obj.ToList();}db.Dispose();}

解决方案

解决方案二:
ParameterName中的参数也要加@符号。
解决方案三:
引用1楼duanzi_peng的回复:

ParameterName中的参数也要加@符号。

有试过加上,也是出这个错误
解决方案四:
顶顶顶.来点大神帮助。。。

时间: 2024-08-20 11:25:43

求解:使用EF执行存储过程时出现SqlParameterCollection 中已包含 SqlParameter。错误的相关文章

mysql 自动停止-mysql执行存储过程时自动停止

问题描述 mysql执行存储过程时自动停止 DELIMITER $$ DROP PROCEDURE IF EXISTS generatorDataCopy $$ CREATE PROCEDURE generatorDataCopy(inpid VARCHAR(50),OUT msg VARCHAR(50)) BEGIN DECLARE err INT DEFAULT 0; -- 如果出现sql异常,则将err设置为1后继续执行后面的操作 DECLARE CONTINUE HANDLER FOR

求教:此 SqlParameterCollection 中未包含带有 ParameterName“@rowcount”的 SqlParameter。

问题描述 此SqlParameterCollection中未包含带有ParameterName"@rowcount"的SqlParameter.说明:执行当前Web请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息:System.IndexOutOfRangeException:此SqlParameterCollection中未包含带有ParameterName"@rowcount"的SqlParamet

执行存储过程时ORA-01031错误的解决方法

以下存储过程编译正常,其中的SQL语句在PLSQL执行也正常,但是在存储过程中执行即报告错误:ORA-01031: insufficient privileges. create or replace procedure DBA_REBUILD_INDEX As Begin execute   immediate  'alter index PK_DUBAI_STORAGE_OUT_MANIFEST  rebuild online'; execute   immediate  'alter in

执行存储过程时编码的问题请教!

问题描述 存储过程如下CREATEproceduretb_sptest(@Remarknvarchar(4000)=null)asdeclare@strsqlnvarchar(4000)select@strsql='updatetb_tablesetRemark=N'''+@Remark+'''exec(@strsql)GO代码里SqlParameter参数如下sqlParas[3]=newSystem.Data.SqlClient.SqlParameter("@Remark",Sys

SQL Server联机丛书:执行存储过程

server|存储过程|执行 EXECUTE执行标量值的用户定义函数.系统过程.用户定义存储过程或扩展存储过程.同时支持 Transact-SQL 批处理内的字符串的执行 若要唤醒调用函数,请使用 EXECUTE stored_procedure 中描述的语法.语法执行存储过程:[ [ EXEC [ UTE ] ]     {          [ @return_status = ]             { procedure_name [ ;number ] | @procedure_n

解析使用存储过程时一个错误的解决方法

这段时间用了一下C++ Builder ,在调用存储过程时遇到了一些问题,问了很多人都没有找到答案,最后还是靠自己解决了问题,现在拿出来和大家分享. 示例代码: StoredProc1->Params->Clear();StoredProc1->Params->CreateParam( ftSmallint, "@m1", ptInput);StoredProc1->Params->CreateParam( ftString, "@m2&q

Oracle定时执行存储过程(转)

  定时执行存储过程在平时开发中经常会用到,年前的时候自己也做了一个,由于时间关系一直没能记录,现记录下来.       首先用一个完整的例子来实现定时执行存储过程.  任务目标:每小时向test表中插入一条数据  实现方案:     1.通过 oracle 中 dbms_job 完成存储过程的定时调用     2.在存储过程中完成相应的逻辑操作  实现步骤:   1.创建一个测试表 create table test(dTime date);     2.创建一个存储过程 create or

启动SQL SERVER时自动执行存储过程

如何在启动SQL SERVER的时候,执行一个存储过程? 将存储过程创建在master数据库中,然后企业管理器中找到这个存储过程--右键--属性--勾选"每当sql server启动时执行". --或者在master中创建存储过程后,执行语句设置为自动启动 use master exec sp_procoption '存储过程名','startup','on' ---------------------------------------------------------------

动SQL SERVER时自动执行存储过程

server|存储过程|执行 如何在启动SQL SERVER的时候,执行一个存储过程? 将存储过程创建在master数据库中,然后企业管理器中找到这个存储过程--右键--属性--勾选"每当sql server启动时执行". --或者在master中创建存储过程后,执行语句设置为自动启动 use master exec sp_procoption '存储过程名','startup','on' ------------------------------------------------