C# EF中调用 存储过程并调回参数

            TourEntities db = new TourEntities();
            List<v_product> v = new List<v_product>();

            SqlParameter[] prams = new SqlParameter[5];
            prams[0] = new SqlParameter("@a", 0);
            prams[1] = new SqlParameter("@b", 0);
            prams[1].Direction = ParameterDirection.Output;
            prams[2] = new SqlParameter("@c", 0);
            prams[3] = new SqlParameter("@d", 0);
            prams[4] = new SqlParameter("@e", 0);

            try
            {
                v = db.Database.SqlQuery<v_product>("exec dbo.proc_list @a,@b out,@c,@d,@e", prams).ToList();
                pageCount = ConvertHelp.ObjToInt(prams[1].Value, 0);
            }
            catch (Exception) { }

基本上就是注意一下 ParameterDirection.Output 这个赋值

以及 db.Database.SqlQuery<v_product>("exec dbo.proc_list @a,@b out,@c,@d,@e", prams).ToList();

时间: 2024-12-08 07:54:28

C# EF中调用 存储过程并调回参数的相关文章

C#调用SQL中的存储过程中有output参数,存储过程执行过程中返回信息

C#调用SQL中的存储过程中有output参数,类型是字符型的时候一定要指定参数的长度.不然获取到的结果总是只有第一字符.本人就是由于这个原因,折腾了很久.在此记录一下,供大家以后参考! 例如: CREATE PROCEDURE sp_AccountRole_Create @CategoryID int, @RoleName nvarchar(10), @Description nvarchar(50), @RoleID int output AS DECLARE @Count int -- 查

EF中执行存储过程

SqlParameter[] parms = new SqlParameter[5]; SqlParameter parms0 = new SqlParameter("IsAll", int.Parse(parames.P1)); //生成一个参数并给参数赋值. SqlParameter parms1 = new SqlParameter("ForumId", int.Parse(parames.P2)); SqlParameter parms2 = new Sql

在Java语言中调用存储过程、存储函数、包头、包体

需要拷贝连接Oracle的jar包,路径如下图所示: 连接Oracle数据库的代码: package demo.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCUtils { private static Stri

在.NET中调用存储过程

今天试了一下用存储过程取得数据.归纳方法如下: 1.用SqlCommand和DataSet: SqlConnection conn=new SqlConnection("server=(local);uid=;password=;database="); SqlCommand cmd=new SqlCommand("StoreProcedure",connn); cmd.CommandType=CommandType.StoreProcedure; SqlDataA

在PL/SQL中调用存储过程--oracle

在oracle10中写好了存储过程,代码如下: CREATE OR REPLACE Procedure Proc_Insert ( sName in varchar2, sAge in int, sExeTime in varchar2 ) is begin Insert into T_TEST(C_ID, C_NAME, C_AGE, C_INTIME, C_EXETIME) values(T_TEST_CID.nextval,sName,sAge, sysdate, to_date(sExe

C# 调用存储过程操作 OUTPUT参数和Return返回值

本文转载:http://www.cnblogs.com/libingql/archive/2010/05/02/1726104.html 存储过程是存放在数据库服务器上的预先编译好的sql语句.使用存储过程,可以直接在数据库中存储并运行功能强大的任务.存储过程在第一应用程序执行时进行语法检查和编译,编译好的版本保存在高速缓存中.在执行重复任务时,存储过程可以提高性能和一致性.由于存储过程可以将一系列对数据库的操作放在数据库服务器上执行,因而可以降低Web服务器的负载,提高整个系统的性能. 1.创

FAQ系列 | Spring框架中调用存储过程失败

Spring框架中,调用存储过程同时还需要show create procedure权限,对于普通用户而言,还要授予 select on mysql.proc 权限才能正常 --------------------------------------分割线-------------------------------------- 知数堂 (http://zhishuedu.com)培训是由资深MySQL专家叶金荣.吴炳锡联合推出的专业优质培训品牌,主要有MySQL DBA实战优化和Python

oracle 存储过程中调用存储过程

//用exec调用存储过程. 一个带参数的存储过程.SQL> CREATE OR REPLACE PROCEDURE HelloWorld1 (2 p_user_name VARCHAR23 ) AS4 BEGIN5 dbms_output.put_line('Hello ' || p_user_name || '!');6 END HelloWorld1;7 / Procedure created. SQL> CREATE OR REPLACE PROCEDURE CallHelloWorl

sql server service broker中调用存储过程执行跨库操作,不管怎么设置都一直提示 服务器主体 &quot;sa&quot; 无法在当前安全上下文下访问数据库 &quot;dbname&quot;。

用sql server自带的消息队列service borker,调用存储过程中,执行了一个跨库的操作,先是用了一个用户,权限什么都给够了,但是一直提示 服务器主体 "user" 无法在当前安全上下文下访问数据库 "dbname". 想着是架构方面的问题,换sa还是不行.查到微软的一篇文章 提示需要开数据库的 ALTER DATABASE current_db SET TRUSTWORTHY ON 我把跨的那个库设置了还是不行.最后自己写测试代码,代码如下: cre