使用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. 设计模式之访问者(visitor)模式

    在患者就医时,医生会根据病情开具处方单,很多医院都会存在以下这个流程:划价人员拿到处方单之后根据药品名称和数量计算总价,而药房工作人员根据药品名称和数量准备药品,如下图所示. 在软件开发中,有时候也需 ...

  2. Net Core网络通信

    Net Core网络通信 https://www.cnblogs.com/xxred/p/9859893.html 聊聊如何设计千万级吞吐量的.Net Core网络通信! 作者:大石头 时间:2018 ...

  3. break、continue与return的区别

    1. break break语句的使用场合主要是switch语句和循环结构.在循环结构中使用break语句,如果执行了break语句,那么就退出循环,接着执行循环结构下面的第一条语句.如果在多重嵌套循 ...

  4. Vue.js devtool插件下载安装及后续问题解决

    在中国,你是无法使用谷歌应用商店,所以你下载插件,要使用一些别的手段,一种是下载源码编译,另一种是通过第三方网站.第一种不适合小白,所以现在介绍第二组. 下载插件网站 国外网站:https://www ...

  5. input子系统框架

    废话不多说,直接进入主题.在驱动insmod后,我们应用层对input设备如何操作?以下以全志a64为实例. 在/dev/input/eventX下(X的形成为后续会分析),是内核把接口暴露给应用层, ...

  6. weblogic控制台的启动与禁用

    在一些安全漏洞扫描中,经常会扫描发现,使用weblogic管理控制台,会有个中危的漏洞. http://192.168.10.46:7001/console/login/LoginForm.jsp W ...

  7. PhysicalDrive

    由于"\"是C/C+中转义符, "\\\\.\\"就相当于\\.\ 在Windows中 \\.\ 前缀用于标识设备,其中的"."表示本地计算 ...

  8. 批处理判断是否有.net环境

    @echo off (echo 已安装.NET Framework) else (echo 未安装.NET Framework) pause>nul

  9. Redis官方文档》持久化

    原文链接 译者:Alexandar Mahone 这篇文章从技术层面描述了Redis持久化,建议所有读者阅读.如果希望更多了解Redis持久化和持久性保障,建议阅读Redis持久化揭秘. Redis ...

  10. HBuilder使用技巧

    ctrl+ Tab  切换 ctrl + shift + D 查找所写的函数