当前位置: 首页 > 编程笔记 >

SQL Server中调用C#类中的方法实例(使用.NET程序集)

龙令
2023-03-14
本文向大家介绍SQL Server中调用C#类中的方法实例(使用.NET程序集),包括了SQL Server中调用C#类中的方法实例(使用.NET程序集)的使用技巧和注意事项,需要的朋友参考一下

需求是这样的,我在.net程序里操作数据时将一些字段数据加密了,这些数据是很多系统共用的,其中一delphi程序也需要用到,并且需要将数据解密,由于我在.net里加密的方式比较特殊,在delphi程序里解密比较繁琐且要消耗很多时间,所以不得不让sqlserver调用程序集的方式来解决问题。

下面只是一个例子,贴出来共享。

建立一个dll,class,代码如下:


namespace MyDll

{

    public partial class MyClass

    {

        [SqlMethod]

        public static SqlString UrlDecode(string value)

        {

            return new SqlString(HttpUtility.UrlDecode(value));

        }

    }

}

放到数据库服务器上。

之后运行下面的T-SQL代码:


EXEC sp_configure 'show advanced options','1'; 

GO 

RECONFIGURE; 

GO 

EXEC sp_configure 'clr enabled','1'

RECONFIGURE; 

GO 

 

ALTER DATABASE DBName SET TRUSTWORTHY ON

GO 

 

CREATE ASSEMBLY 

[System.Web] FROM

'C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\System.Web.dll'

WITH permission_set = UNSAFE 

GO 

 

CREATE ASSEMBLY SQL_CLR_Url 

FROM 'C:\MyDLL.dll'

WITH PERMISSION_SET = UNSAFE 

 

GO

 

CREATE FUNCTION SqlUrlDecode(@urlstr NVARCHAR(4000)) 

RETURNS NVARCHAR(4000) 

AS

EXTERNAL NAME SQL_CLR_Url.[SqlClr.MyClass].UrlDecode 

GO

然后就可以在T-SQL里调用这个函数了。


select dbo.SqlUrlDecode(Name) from Table

 类似资料:
  • 本文向大家介绍C#中调用VB中Inputbox类的实现方法,包括了C#中调用VB中Inputbox类的实现方法的使用技巧和注意事项,需要的朋友参考一下 C#自己没有Inputbox这个类,但是Inputbox也蛮好用的,所以有两种方法可以使用 一:间接调用vb中的Inputbox功能       1。在项目中添加对Microsoft.VisualBasic引用       2。在项目中添加命名空间

  • 本文向大家介绍C#中子类调用父类的实现方法,包括了C#中子类调用父类的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#中实现子类调用父类的方法,分享给大家供大家参考之用。具体方法如下: 一、通过子类无参构造函数创建子类实例 创建父类Person和子类Student。 在客户端通过子类无参构造函数创建子类实例。 输出结果: 可见:通过调用子类无参构造函数创建子类实例,会默认调用父

  • 本文向大家介绍C#中Dictionary类使用实例,包括了C#中Dictionary类使用实例的使用技巧和注意事项,需要的朋友参考一下 在C#中,使用Dictionary类来管理由键值对组成的集合,这类集合称为字典。 字典最大的特点就是能够根据键来快速查找集合中的值。 下面是一个使用字典的小实例,希望通过这个小实例,能让大家对字典操作有一个初步的了解。下面是完整代码。 实例中需要定义两个类: Sc

  • 问题内容: 在Eclipse中调试时如何调用类实例方法? 例如,假设我有以下代码: 我在canvas.drawColor行上有一个断点。当我调试时,代码停止在那一行,并且我可以查看canvas内的变量,但是我也希望能够像在Visual Studio中那样调用canvas内的方法以查看它们返回的结果? 问题答案: 打开“ 显示” 视图,在其中键入要执行的代码,选择它,单击鼠标右键,然后根据您要 执行

  • 通过前面的学习,类方法大体分为 3 类,分别是类方法、实例方法和静态方法,其中实例方法用的是最多的。我们知道,实例方法的调用方式其实有 2 种,既可以采用类对象调用,也可以直接通过类名调用。 通常情况下,我们习惯使用类对象调用类中的实例方法。但如果想用类调用实例方法,不能像如下这样: 运行上面代码,程序会报出如下错误: Traceback (most recent call last):   Fi

  • 本文向大家介绍C#.Net ArrayList的使用方法,包括了C#.Net ArrayList的使用方法的使用技巧和注意事项,需要的朋友参考一下 ArrayList就是传说中的动态数组,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 1、如何使用ArrayList 最简单的例子: 这是一个简单的例子,虽然没有包含ArrayList