网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

用于CLR存储过程的C#代码

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

--
--9.5.1节示例
--

//用于CLR存储过程的C#代码
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
//定义CLR存储过程所在的类,该类的类名是StoredProcedures
public partial class StoredProcedures
{
//使用该Attribute标明函数SayHello是作为CLR存储过程被调用的
    [Microsoft.SqlServer.Server.SqlProcedure]
    public static void SayHello(SqlString name)//定义静态函数作为CLR存储过程对应函数
{
//定义返回的列名和数据类型
        SqlMetaData data=new SqlMetaData("Say",SqlDbType.NVarChar,100);
        SqlDataRecord record = new SqlDataRecord(new SqlMetaData[] { data });
        if (!name.IsNull)
        {
            record.SetString(0, "Hello," + name.Value);//设置第一行返回的行内容
        }
        SqlContext.Pipe.Send(record);//将返回的结果集发生给客户端
    }
};

--
--9.5.2节示例
--

--创建CLR存储过程
CREATE  PROCEDURE dbo.SayHello --创建CLR存储过程
(
@name nvarchar(10)
)
--以下指定CLR存储过程所在程序集中的位置
AS EXTERNAL NAME [TestSQLAssembly].[StoredProcedures].SayHello

--调用CLR存储过程
EXEC dbo.SayHello @name='ZengYi'

--
--9.5.3节示例
--
//C#实现加法存储过程的函数
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
//定义CLR存储过程所在的类,该类的类名是StoredProcedures
public partial class StoredProcedures
{
    [Microsoft.SqlServer.Server.SqlProcedure] //标明Add静态函数是CLR存储过程用
    public static void Add(SqlInt32 a,SqlInt32 b,ref SqlInt32 c)//定义函数
    {
        if (a.IsNull || b.IsNull)  //如果a或b为空,则返回空
            c = SqlInt32.Null;
        else     //将a+b的值付给c
            c = new SqlInt32(a.Value + b.Value);
    }
};

--创建和使用带OUTPUT参数的CLR存储过程
CREATE  PROCEDURE dbo.AddNumber --创建CLR存储过程
(
 @a int,
 @b int,
 @c int output --存储过程第3个参数为OUTPUT类型,与C#中的ref对应
)
--指定CLR存储过程对应函数所在的位置
AS EXTERNAL NAME [TestSQLAssembly].[StoredProcedures].[Add]
GO  
--以下是调用CLR存储过程
DECLARE @c int
EXEC dbo.AddNumber 11,22,@c OUTPUT;
PRINT @c
 

  • 上一篇资讯: 在C#中访问inserted表
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师