使用clr 调用C#编写的dll中的方法的全解释
1.数据库初始化:
将下面这段代码直接在运行就可以初始化数据库了
exec sp_configure 'show advanced options', '1';
go
reconfigure;
go
exec sp_configure 'clr enabled', '1'
go
reconfigure;
exec sp_configure 'show advanced options', '1';
go

ALTER DATABASE DB_Name set TRUSTWORTHY on;(打开数据库的TRUSTWORTHY 属性)
go
2.数据库添加程序集:
create assembly 程序集名字
from '程序集所存放的位置'
WITH permission_set = Safe;
3.创建数据库添加函数的映射

create function 函数名称
(
传入的参数 必须是 Nvarchar类型的 )
returns Nvarchar(1000)
as
external name 程序集名字.[程序集名.类名].方法名;

下面是我创建的用于加密的函数

USE [NjClient1]
GO
/****** Object: UserDefinedFunction [dbo].[jiami] Script Date: 2014/5/28 19:15:27 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER FUNCTION [dbo].[jiami](@明文 [nvarchar](1000))
RETURNS [nvarchar](1000) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [Des].[NjClient1.DES].[Encrypt]

4.调用函数进行加密
直接使用函数名括号内传入需要加密的字符串即可
SELECT dbo.jiemi(@参数)

解密过程同上加密过程

编写的C#代码中的一些注意事项
1.在需要让数据库调用的方法名前需要添加
[SqlFunction(DataAccess = DataAccessKind.None)]
同样的需要引入类库
using Microsoft.SqlServer.Server;
2.所有需要让数据库调用的方法都必须是静态方法static
3.生成dll所以用的.netframwork 版本不可以过高,建议使用2.0版本

加密方式:
这个加密需要使用数据库加载dll动态链接库创建程序集进行加密,动态链接库我已经生成好了,
你那把只需要加载动态链接库然后调用里面的加密方法就可以进行加密了。
我会给你一个dll文件,你只需要加载这个文件到程序集然后通过加载的程序集使用Encrypt方法既可以进行加密了,
传入参数为明文字符串,返回参数为密文字符串类型都为nvarchar(1000)类型

使用clr 调用C#编写的dll中的方法的全解释的更多相关文章

  1. C#动态调用C++编写的DLL函数

    C#动态调用C++编写的DLL函数 动态加载DLL需要使用Windows API函数:LoadLibrary.GetProcAddress以及FreeLibrary.我们可以使用DllImport在C ...

  2. C#调用C++编写的DLL函数, 以及各种类型的参数传递 (转载)

        C#调用C++编写的DLL函数, 以及各种类型的参数传递 1. 如果函数只有传入参数,比如: C/C++ Code Copy Code To Clipboard //C++中的输出函数 int ...

  3. 纯静态界面中(html)中通过js调用dll中的方法从数据库中读取数据

    最近接到一个离职员工的任务,一个搭好框架的ERP系统,看了两天,说一下看到的东西,整个项目目录中我没发现一个.aspx后缀的文件,全是静态HTML文件,之后发现他用的jquery简直看的头疼,不过大概 ...

  4. 发现个delphi调用vc写的Dll中包括pchar參数报错奇怪现象

    发现个delphi调用vc写的Dll中包括pchar參数奇怪现象 procedure中的第一行语句不能直接调用DLL的函数,否则会执行报错,在之前随意加上条语句就不报错了奇怪! vc的DLL源代码地址 ...

  5. 动态的调用服务端的WCF中的方法

    客户端调用wcf ,有时需要动态的调用服务端的WCF中的方法,本方法,反射wcf 的接口,动态调用接口中的方法. 主要为,动态绑定,反射动态调用. public static object Execu ...

  6. C++项目中采用CLR的方式调用C#编写的dll

    1.注意事项:在编写C#DLL类库时,最好不要出现相同的命名空间,否则在C++中调用可能会出现编译错误.2.将C#的源码生成的“dll”文件复制到C++项目中的Debug目录下3.将C++项目属性设置 ...

  7. 通过C#去调用C++编写的DLL

    这个问题缠了我2个小时才弄出来,其实很简单.当对方提供一个dll给你使用时,你需要去了解这个dll 是由什么语言写的,怎么编译的,看它的编译类型.这样即使在没有头绪时,你可以先尝使用一些比较热门的编译 ...

  8. Delphi7调用DelphiXE编写的DLL问题

    http://bbs.csdn.net/topics/380045353 用DelphiXE在WIN2008下编写一个访问WebServices的DLL ws.dll,只有一个输出函数,如下: fun ...

  9. sql server中调用c#写的dll里的方法

    最近有一项目: 一超市管理系统单机版,运行在WIN2003+SQL2005上,每天超市关门都都会关电脑,现客户要新加功能,每天关门下班后回家可以上网查看超市管理系统的数据库里的相关数据,然后再做一些原 ...

随机推荐

  1. 随机获取图片的api接口

    http://lorempixel.com/1600/900 https://unsplash.it/1600/900?random(国内加载略慢) https://uploadbeta.com/ap ...

  2. 瀑布流下滑 发送ajax

    <!DOCTYPE=html>      <html>      <head>      <meta charset="UTF-8"> ...

  3. 关于this指向问题的总结【转自秘密花园】

    this 的工作原理 JavaScript 有一套完全不同于其它语言的对 this 的处理机制. 在五种不同的情况下 ,this 指向的各不相同. 第一种:全局范围内 this; 当在全部范围内使用  ...

  4. 关于list.extend(iterable)

    extend内的参数只要是iterable就可以,那么也可以添加定制的iterable,开整. class A(object): def __init__(self): self.a = 0 def ...

  5. fn project faas 框架试用

    1. 预备环境 docker 17.05 docker hub account (测试可选) 2. 安装 curl -LSs https://raw.githubusercontent.com/fnp ...

  6. C#处理不规范的时间字符串

    这样的一个情景,数据中   出生日期 是存的时间方便计算,但是前台来的数据五花八门 20170101 2017.01 2017-01-01 2017年01月1日 由于特殊原因现在确实没办法规范用户输入 ...

  7. stp 零部件 转为 装配图

    stp 零部件 转为 装配图 起因 由于收到的 stp 为零件件,这时如果输出 eDrawings 文件时是没有装配结构的. 解决 打开 stp 后在资源管理器中有一个实体的文件夹,点右键保存实体. ...

  8. 插入排序的JavaScript实现

    思想 每次在现有已经排好的数组的基础上排入一个新的数组项. 先把第一项看做是已经排好的,第二项应该排在第一项之前还是之后呢?当前两项排好后,第三项应该排在这已排好的两项的之前还是之后还是中间呢?当前三 ...

  9. windows调试本地启动的tomcat

    我们一般都通过Eclipse进行tomcat的本地调试,但有些特殊情况下需要直接本地启动tomcat(进入tomcat的bin目录下执行startup.bat),此时我们可以利用类似远程调试模式的方式 ...

  10. xe 最大连接数限制、记录客户连接、心跳

    xe 最大连接数限制.记录客户连接.心跳   //author: cxg unit DSServerContainer; interface uses  SysUtils, Classes, IniF ...