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#实现异步连接Sql Server数据库的方法
本文实例讲述了C#实现异步连接Sql Server数据库的方法.分享给大家供大家参考.具体分析如下: .net最新版提供了await方法,可以使我们可以很容易实现到数据库的异步连接 复制代码 代码如下: readonly string ConnectionString = "Data Source=database_server_name;Initial Catalog=Store;Integrated Security=True"; protected async void Exec
-
C#控制台程序实现开启、关闭SQLServer服务的代码分享
用了近一天的时间研究了C#如何开启SqlServer数据库的服务,起先应用的是C#自带的System.ServiceProcess.ServiceContorller类,但个人认为它在win7下效果不佳,或许由于个人系统问题,最终决定放弃去选择应用C#的system.diagnostice.process.start方法执行cmd指令,下面我示范开启SqlServer最具代表的两个服务mssqlserver与mssqlserveragent,下面是本人练习写的控制台下的代码,经由多次测试均可成功
-
C#访问SqlServer设置链接超时的方法
本文实例讲述了C#访问SqlServer设置链接超时的方法.分享给大家供大家参考.具体实现方法如下: 下面这段代码设置超时时间为60秒,默认为30秒 using (connection) { SqlCommand sqlcommand = connection.CreateCommand(); sqlcommand.CommandTimeout = 60; //默认时间为 30 秒 sqlcommand.CommandText = sqlText; ... 希望本文所述对大家的C#程序设计有所帮
-
c#操作sql server2008 的界面实例代码
先是查询整张表,用到combobox选择查询哪张表,最后用DataGridView显示 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsForms
-
C#更新SQLServer中TimeStamp字段(时间戳)的方法
本文实例讲述了C#更新SQLServer中TimeStamp字段(时间戳)的方法.分享给大家供大家参考.具体实现方法如下: public partial class Form1 : Form { private SqlConnection mCnn = null; private long TimeStampValue; public Form1() { InitializeComponent(); mCnn = new SqlConnection(); mCnn.ConnectionStrin
-
C#如何实现对sql server数据库的增删改查
一个专门实现sql server数据库的增删改查,以及将查询的结果返回成表格等功能,分享代码如下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient;//第一步:引用与sql相关的命名空间 using System.Data;//引用表的命名空间 //行注释 ///段落注释 /// <summary> ///第二步: 把
-
C#连接到sql server2008数据库的实例代码
废话不多说了,直接给大家贴代码了,具体代码如下所示: namespace MyFirstApp { class Program { static void Main(string[] args) { SqlConnection conn = null; SqlCommand comm = null; SqlDataReader sdreader = null; try { string ConStr = "server=192.168.1.110;uid=sa;pwd=woaifr0828;da
-
C#查询SqlServer数据库并返回单个值的方法
本文实例讲述了C#查询SqlServer数据库并返回单个值的方法.分享给大家供大家参考.具体实现方法如下: static public string GetSqlAsString(string sqlText, SqlParameter[] sqlParameters, string databaseConnectionString) { string result = ""; SqlDataReader reader; SqlConnection connection = new S
-
sql server删除前1000行数据的方法实例
近日,sql数据库入门学习群有朋友问到,利用sql如何删除表格的前1000行数据,是否可以实现? 如果是oracle数据库管理软件,实现起来相对简单多了 delete from 表名 where rownum<=1000; 那sql server数据库管理软件呢? sql server里没有rownum功能,小编尝试用select top 先查询看下结果集,select * from 表名: delete from 表名 where 条码 in (select top 10 条码 from 表名
-
SQL Server中调用C#类中的方法实例(使用.NET程序集)
需求是这样的,我在.net程序里操作数据时将一些字段数据加密了,这些数据是很多系统共用的,其中一delphi程序也需要用到,并且需要将数据解密,由于我在.net里加密的方式比较特殊,在delphi程序里解密比较繁琐且要消耗很多时间,所以不得不让sqlserver调用程序集的方式来解决问题. 下面只是一个例子,贴出来共享. 建立一个dll,class,代码如下: 复制代码 代码如下: namespace MyDll { public partial class MyClass {
-
SQL Server LocalDB 在 ASP.NET中的应用介绍
我相信世界总是会向更好的方向发展,今年的维也纳新年音乐会没有往年的明星级指挥,但是它通过回归奥地利的本质,以更传统的聚合法则,让过往的艺术家们一代代创造的灿烂,在新的指挥手中,迸发出更深邃的音节.在此,也祝大家新年快乐.如同交响乐一样,构造软件系统不一定必须某个强大的明星驱动,我们站在历代ADO.NET的肩膀上,更好地回归到SQL Server的核心开发:SQL Server LocalDB 在 ASP.NET中的应用. 使用SQL Server LocalDB的优势: 快速部署完整的SQL S
-
c++ 构造函数中调用虚函数的实现方法
我们知道:C++中的多态使得可以根据对象的真实类型(动态类型)调用不同的虚函数.这种调用都是对象已经构建完成的情况.那如果在构造函数中调用虚函数,会怎么样呢? 有这么一段代码: class A { public: A ():m_iVal(0){test();} virtual void func() { std::cout<<m_iVal<<' ';} void test(){func();} public: int m_iVal; }; class B : public A {
-
Vue中使用 class 类样式的方法详情
在vue中为我们提供了 几种方式来使用class类的样式 1. 布尔值 我们先正常在 style 标签中 书写一个类名为 active的样式 <style> .active{ color: red; font-size: 20px; font-style: normal; } </style> 在我们的 script 标签中创建一个 vm 实例,在实例的 data 数据中心写上 isActive:true , true 表示使用此样式,false 则表示不使用 <script
-
python 中Mixin混入类的使用方法详解
目录 前言 Mixin 与继承的区别 总结 前言 最近在看sanic的源码,发现有很多Mixin的类,大概长成这个样子 class BaseSanic( RouteMixin, MiddlewareMixin, ListenerMixin, ExceptionMixin, SignalMixin, metaclass=SanicMeta, ): 于是对于这种 Mixin 研究了一下,其实也没什么新的东西,Mixin 又称混入,只是一种编程思想的体现,但是在使用
-
iOS中创建表格类视图WBDataGridView的实例代码
项目中创建表格, 引用头文件 #import "WBDataGridView.h" - (void)viewDidLoad{ [superviewDidLoad]; // Do any additional setup after loading the view. self.view.backgroundColor = [UIColorwhiteColor]; CGFloat margin = 10.f; CGFloat width = self.view.frame.size.wi
-
COM组件中调用JavaScript函数详解及实例
COM组件中调用JavaScript函数详解及实例 要求是很简单的,即有COM组件A在IE中运行,使用JavaScript(JS)调用A的方法longCalc(),该方法是一个耗时的操作,要求通知IE当前的进度.这就要求使用回调函数,设其名称为scriptCallbackFunc.实现这个技术很简单: 1 .组件方(C++) 组件A 的方法在IDL中定义: [id(2)] HRESULT longCalc([in] DOUBLE v1, [in] DOUBLE v2, [in, optional
-
Sql Server 存储过程调用存储过程接收输出参数返回值
创建存储过程: ALTER PROCEDURE [dbo].[GetCustomers] (@rowcount INT OUTPUT) AS SELECT [CustomerID] ,[CompanyName] ,[ContactName] ,[ContactTitle] ,[Address] ,[City] ,[Region] ,[PostalCode] ,[Country] ,[Phone] ,[Fax] FROM [Northwind].[dbo].[Customers] SET @row
-
详解vue项目中调用百度地图API使用方法
步骤一:申请百度地图密钥: JavaScript API v1.4以及以前的版本无序申请秘钥(ak),自v1.5版本开始需要先申请秘钥(ak),才可以使用,如需获取更高的配额,需要申请 认证企业用户.百度地图API 链接地址:http://lbsyun.baidu.com/apiconsole/key 步骤二:在index.html中添加百度地图JavaScript API接口: <script src="http://api.map.baidu.com/api?v=1.4"
随机推荐
- Laravel框架实现redis集群的方法分析
- AngularJs表单校验功能实例代码
- JavaScript使用原型和原型链实现对象继承的方法详解
- 浅谈Java工程读取resources中资源文件路径的问题
- sqlyog 中文乱码问题的设置方法
- 单个select语句实现MySQL查询统计次数
- 用PHP获取Google AJAX Search API 数据的代码
- 求PHP数组最大值,最小值的代码
- php导出生成word的方法
- jQuery Validate 验证,校验规则写在控件中的具体实例
- Powershell小技巧--将文件夹中的大文件分成若干份
- Linux下Apache安装/增加mod_rewrite模块的方法
- 浅谈SQL Server交叉联接 内部联接
- Bootstrap源码解读导航条(7)
- Downplus 2.0关于使用迅雷快车链接的说明
- win2003服务器删除服务的方法
- Java TreeSet实现学生按年龄大小和姓名排序的方法示例
- c#中实现退出程序后自动重新启动程序的方法
- Mybatis中typeAliases的使用
- 详解android 人脸检测你一定会遇到的坑