带OUTPUT参数的CLR存储过程

前面写了一篇《带参数的CLR存储过程》http://www.cnblogs.com/insus/p/4373605.html ,如果我们需要创建一个带OUTPUT返回值。

实现它,可以先了解一下C#的OUT关键词

out (C# Reference)

打开刚才前面我们写好的SQL DataBase project,添加一个方法:

可复制代码:

 public static void GetFruitName(out SqlString fruitName, SqlByte fruit_nbr )
    {
        SqlConnection connection = new SqlConnection("Context connection=true");
        connection.Open();

        SqlCommand command = new SqlCommand();
        command.Connection = connection;

        string sql = "SELECT [FruitName] FROM [dbo].[Fruit] WHERE [Fruit_nbr] = @Fruit_nbr";

        command.CommandText = sql;

        SqlParameter param = new SqlParameter("@Fruit_nbr", SqlDbType.TinyInt);
        param.Value = fruit_nbr;
        command.Parameters.Add(param);

        try
        {
            string scalarValue = (string)command.ExecuteScalar();
            fruitName = (SqlString)scalarValue;
        }
        catch
        {
            fruitName = string.Empty;
        }

        connection.Close();
    }

Build solution,然后找开Microsoft SQL Server management studio,重新部署Assembly以及Clr stored procedure。
参考前两篇《简单创建与布署CLR存储过程http://www.cnblogs.com/insus/p/4371762.html 和 《带参数的CLR存储过程http://www.cnblogs.com/insus/p/4373605.html 

执行存储过程:

时间: 2024-10-08 00:10:54

带OUTPUT参数的CLR存储过程的相关文章

带参数的CLR存储过程

昨天有学习<简单创建与布署CLR存储过程>http://www.cnblogs.com/insus/p/4371762.html,知道怎样创建以及布署至SQL中去. 下面这个范例是实现CLR存储过程附带参数: 可复制代码: SqlConnection connection = new SqlConnection("Context connection=true"); connection.Open(); SqlCommand command = new SqlCommand

DATASNAP中间件调用带OUTPUT参数的存储过程

服务端: function TServerMethods1.spExecOut(funcId, sqlId, inParams: OleVariant): OleVariant;var d: TfrmDB; procName: string; params: TFDParams; i, h: Integer;begin Result := null; d := DBPool.Lock; if not Assigned(d) then Exit; try try procName := frmBu

Cpp 调用sql server 存储过程时不返回output参数解决办法

Cpp 调用sql server 存储过程时不返回output参数,但是在ssms中调用的时候能正常返回,貌似数据库和应用代码是一切正常,再测试用c#调用也能正常获取output参数,在存储过程的的开始加上set nocount on,就能解决这个问题. 墙外原文件:点击打开链接

EF(ServerFirst)执行存储过程实例1(带输出参数)

1.不含动态sql.带输出参数存储过程调用实例 a.存储过程代码: b.EF自动生成代码(包括对应ObjectResult的实体模型): c.调用存储过程代码实例: 总结: ObjectParameter参数对应输出类型时,不必指定类似Output等 ObjectParameter的命名空间:using System.Data.Objects; ObjectParameter参数的Name是对应存储过程参数字符串去掉@符号,例如存储过程参数‘@Count int output‘,对应Name为”

qt调用sql server存储过程并获取output参数

最近新做的一个项目需要使用qt连接另一台机器上的sql server,虽然网上已有类似文章,但还是有些其中很少提及的问题,故在这里汇总下: qt连接sql server可以参考这篇文章,如果是连接另一台机器的sql server就不用执行第一步“开启ODBC驱动”了 http://www.cnblogs.com/shaolw/p/3411285.html 另外指定数据库用户名和密码可以使用Uid和Pwd,即原文dsn参数可以这样写: QString dsn = QString("Driver={

SubSonic3.0使用存储过程查询时,不能使用output参数返回值的问题修改

有个群友问SubSonic3.0执行存储过程时能不能使用output参数返回值,说测试过后获取不到返回值,早上有些时间所以就尝试修改了一下 首先在数据库中创建一个存储过程 1 CREATE PROCEDURE [OutValue] 2 @a int, 3 @b int, 4 @c int output 5 AS 6 Set @c = @a + @b 7 GO 打开Settings.ttinclude模板,找到SPParam类,修改为下面代码 1 public class SPParam{ 2 p

EF 调用存储过程、返回多结果集和OUTPUT参数 等问题

一.EF调用存储过程: 1.执行返回表类型的存储过程 先上存储过程 随手写的一个最简单的   .        Student.  Enrollment,Student   Enrollment.StudentIDStudent.StudentID  Enrollment.StudentID 执行存储过程的方法 是用直接执行sql的方式 我在我的文章第九篇 有过详细的介绍~大家可以先去看下 执行表的存储过程 其实是非常强大的 延迟加载 等都有体现 博客园的陆老师已经写了 写的非常清楚了~我这里就

sybase带输出参数的存储过程实例

使用return返回 --create pro USE yfb go create proc cwqi_test_pro(  @newName varchar(20) out,  @oldName varchar(20) in  ) as begin   set @[email protected]   return 1 end --run pro DECLARE @newName varchar(20) DECLARE @oldName varchar(20) DECLARE @result 

【Mybatis】MyBatis调用带有返回结果、output参数的存储过程上与ibatis的区别

用过mybatis的应该都知道它是ibatis被Google收购后重新命名的一个工程,因此也做了大量升级.本文就来介绍下两者在调用存储过程上的一点区别,ibatis有一个专门的标签<procedure>,在mybatis里面已经没有这标签了,而是通过一个参数statementType="CALLABLE"来区分. 存储过程: ALTER PROCEDURE [dbo].[Pro_Create_Number] @ChannelNo VARCHAR(10) ,--渠道号 @Nu