`
niunan
  • 浏览: 699233 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

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

    博客分类:
  • .NET
 
阅读更多

最近有一项目:

 一超市管理系统单机版,运行在WIN2003+SQL2005上,每天超市关门都都会关电脑,现客户要新加功能,每天关门下班后回家可以上网查看超市管理系统的数据库里的相关数据,然后再做一些原系统没有的统计分析等,老系统不能做大改动,像升级到WIN2012+SQL2012等这些操作,改动越小越好。

现在的想法是:阿里云买台服务器,装上SQL,然后建立的数据库和超市管理系统上的数据库一毛一样,然后想办法,当超市管理系统数据库里的增表增删改的时候,同步阿里云服务器上的数据库保持数据一致,

然后剩下的就是做自己的网站连接阿里云上的数据库做统计分析就好了

上网到处问网友,以前的技术经理给了如下方案:


 
using System.Text.RegularExpressions;

namespace MSSQLExtMethod
{
    public class RegexExtends
    {
        [Microsoft.SqlServer.Server.SqlFunction]
        public static bool IsMath(string input, string patten)
        {
            return !string.IsNullOrEmpty(input) && new Regex(patten).IsMatch(input);
        }
        [Microsoft.SqlServer.Server.SqlFunction]
        public static string Math(string input, string patten)
        {
            return string.IsNullOrEmpty(input) ? "" : new Regex(patten).Match(input).Value;
        }
        [Microsoft.SqlServer.Server.SqlFunction]
        public static string Replace(string input, string patten, string replace)
        {
            return string.IsNullOrEmpty(input) ? "" : new Regex(patten).Replace(input, replace);
        }
    }
}

-------------------------------------------------

create assembly Regex from 'E:\Test\Libs\MSSQLExtMethod.Regex\MSSQLExtMethod.Regex\bin\Debug\MSSQLExtMethod.Regex.dll' with permission_set = SAFE

exec sp_configure 'clr enabled',1
RECONFIGURE

create function [dbo].[Regex.Math](@Input nvarchar(max),@Regex nvarchar(max))
returns nvarchar(max) with execute as caller
as
external NAME [Regex].[MSSQLExtMethod.RegexExtends].[Math]
go

create function [dbo].[Regex.Replace](@Input nvarchar(max),@Regex nvarchar(max),@Replace nvarchar(max))
returns nvarchar(max) with execute as caller
as
external NAME [Regex].[MSSQLExtMethod.RegexExtends].[Replace]
go

create function [dbo].[Regex.IsMath](@Input nvarchar(max),@Regex nvarchar(max))
returns bit with execute as caller
as
external NAME [Regex].[MSSQLExtMethod.RegexExtends].[IsMath]
go

------------------------------------------------------------------

declare
    @regex nvarchar(500)
    ,@replace nvarchar(500)
    ,@input nvarchar(500)
    ,@regex2 nvarchar(500)
    ,@input2 nvarchar(500)


select @regex = '^(1[3456789][0-9])[0-9]{4}([0-9]{4})$'
,@input = '13912345678'
,@replace = '$1****$2'

select @regex2='1[3456789][0-9]{6}'
,@input2='13100000000,13922222222'

select dbo.[Regex.Replace](@input,@regex,@replace)
select dbo.[Regex.Math](@input2,@regex2)
select dbo.[Regex.IsMath](@input2,@regex2)




第一块代码,.net 类库,第二块代码类库注册到 MSSQL 中形成函数,第三块代码调用实例

今天自己测试了一下,发现只有.NET 2.0的DLL才可以,开始我是.NET 4.0的,总是报那个什么什么权限错误之类的。。


这样只要在SQL2005的表中加个触发器,有数据变动的时候就调用DLL里的方法访问远程接口进行增删改远程数据库就好了

 

另SQL非免费版里好像有个‘镜像’功能,和一个‘复制’功能,不知道能不能用,没有学过的。。。

 

自己在VS2W017中做的.NET 2.0的DLL示例方法的源码:

http://ohpxbzczu.bkt.clouddn.com/SQL2005ExecDLLDemo.zip

 

分享到:
评论

相关推荐

    SqlServer调用C#DLL的方法

    SqlServer调用C#DLL的方法!

    C# SQL Server数据库操作DLL

    C# SQL Server数据库操作DLL,提供数据库链接、读取DataSet、DataTable,执行添加、修改、删除数据。附源码项目和dll文件

    SQL数据库调用C#dll库

    SQL2008数据库调用C#写的dll库的方法

    sql调用自己写的dll

    通过文字讲解+示例代码+图片 一步步教会你如何在sql server中执行自定义的dll 调试环境 c#(vs08) sql2000 win2003 学会这个之后,用vs6.0写的COM也是一样调用的 原文可以在网上搜索"SQL Server 调用C#。net写的Dll ...

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

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

    .SqlBulkCopy.Extension第三方批量复制插入sqlServer数据库的dll程序集(支持批量数据合并插入)

    本部分是dll程序集,在C#.NET的项目中添加对该文件的引用, 使用时直接按照.net中sqlbulkcopy的使用方法调用执行就可以,很方便,没有什么特别的。所以,这是z项目人员,把整个库称为Extension扩展库的原因。 少赚点...

    在SQL Server中使用CLR调用.NET方法实现思路

    介绍 我们一起来做个示例,在.NET中新建一个类,并在这个类里新建一个方法,然后在SQL Server中调用这个方法。按照微软所述,通过宿主 Microsoft .NET Framework 2.0 公共语言运行库 (CLR),SQL Server 2005显著地...

    C# 用命令附加数据库到SQLSERVER 简单实现

    引入这个dll,调用方法: Alexsoft.AddDataBase.AddDB("EmployeeMsg", "User_Msg"); //参数列表:第一个是数据库名和数据库文件名要一样的,第二个是数据库中任意一个表名,SQL服务器实例名必须为SQL2005! 把mdf...

    Z.SqlBulkCopy.Extension第三方批量复制插入sqlServer数据库的方法-C#源代码

    Z.SqlBulkCopy.Extension第三方批量复制插入sqlServer数据库的方法-chm帮助文档 Z项目是MIT麻省理工大学的一个项目,其中有很多扩展库,其中一个关于批量导入数据到Sqlserver的方法和程序集,非常不错,很实用。 Z....

    sql2005调用.net方法

    今天我就手把手教大家如何实现SQL调用C#中DLL的方法。 有.net开发经常的朋友们直接下载后研究一下应该就明白了。 入门的朋友接着看: 1.创建项目,添加新类,复制以下代码到新类中 using System; using System....

    MVC 调用存储过程用DLL

    MVC 成功越过实体模型(EF) 自由传参数 自由调用 返回 dataset 或者 一个值

    SQL2000 绿色版 封装为.NET DLL(C#)

    绿色运行SQL2000一直是个梦。因它可以免安装,安装文件不大,所以操作起来很方便。 现网上找到一些绿色版,各有特色,但都是另外加了壳去运行的,想要直接部署到.NET程序中几乎不现实。...压缩包中包含调用示例!

    在x64位SQL Server 2005中使用32位COM DLL

    在x64位SQL Server 2005中使用32位COM DLL

    SQLHelper.DLL文件

    调用DLL里面的方法,操作SQLServer数据库,很方便。

    批量插入数据到数据库请使用MysqlBulkCopy.dll.zip

    添加dll引用即可调用(无脑操作,何况源码里有)添加此对应dll引用,然后使用时直接可调用方法(BulkInsert. MySqlBulkInsert(参数1是DataTable,参数二是数据库连接字符串))。插入数据库数据请使用SqlBackCopy。下载...

    C#开发经验技巧宝典

    0956 C#中附加单文件SQL Server数据库 559 0957 备份SQL Server数据库 559 0958 还原SQL Server数据库 560 0959 开启SQL Server数据库服务 561 0960 断开SQL Server数据库服务 562 0961 如何判断SQL ...

    ppb开发wince直连sql2000数据库

    2>ppb开发,调用c#做的dll再调sql2000 3>最好用的ppb直接调用sql2000(建议使用) 包里所有工具都在,代码没仔细整理,大家自己看看吧,还有ppb直调sql2000的技术 文档,本人一步步自己走过来的,给大家贡献出来.如有问题也...

    BouncyCastle.Crypto.dll

    BouncyCastle 加密算法.net组件 版本10.0

    批量执行dtsx包

    本程序通过调用sql server中的Microsoft.SQLServer.ManagedDTS.dll,批量执行sql server 2008商业智能模型开发的ssis包。本程序采集vs 2010作为开发工具,语言采用c#语言,这是一个完整的工程完,可以通过vs 2010...

    mssql 存储过程调用C#编写的DLL文件

    准备DLL文件 首先,你需要新建一个类库工程,工程名没有要求,随意取为Test。新建一个类文件,例如: 代码如下:using System; namespace Test { public class SayHello { public SayHello() { } public string Hi()...

Global site tag (gtag.js) - Google Analytics