首页 文章 精选 留言 我的

精选列表

搜索[c ],共10000篇文章
优秀的个人博客,低调大师

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

最近有一项目: 一超市管理系统单机版,运行在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:TestLibsMSSQLExtMethod.RegexMSSQLExtMethod.RegexbinDebugMSSQLExtMethod.Regex.dll' with permission_set = SAFE exec sp_configure 'clr enabled',1RECONFIGURE create function [dbo].Regex.Math,@Regex nvarchar(max))returns nvarchar(max) with execute as callerasexternal NAME [Regex].[MSSQLExtMethod.RegexExtends].[Math]go create function [dbo].Regex.Replace,@Regex nvarchar(max),@Replace nvarchar(max))returns nvarchar(max) with execute as callerasexternal NAME [Regex].[MSSQLExtMethod.RegexExtends].[Replace]go create function [dbo].Regex.IsMath,@Regex nvarchar(max))returns bit with execute as callerasexternal NAME [Regex].[MSSQLExtMethod.RegexExtends].[IsMath]go declare @regex nvarchar(500) ,@replace nvarchar(500) ,@input nvarchar(500) ,@regex2 nvarchar(500) ,@input2 nvarchar(500) select @regex = '^(13456789)[0-9]{4}([0-9]{4})$',@input = '13912345678',@replace = '$1****$2' select @regex2='13456789{6}',@input2='13100000000,13922222222' select dbo.Regex.Replaceselect dbo.Regex.Mathselect dbo.Regex.IsMath 第一块代码,.net 类库,第二块代码类库注册到 MSSQL 中形成函数,第三块代码调用实例 今天自己测试了一下,发现只有.NET 2.0的DLL才可以,开始我是.NET 4.0的,总是报那个什么什么权限错误之类的。。 这样只要在SQL2005的表中加个触发器,有数据变动的时候就调用DLL里的方法访问远程接口进行增删改远程数据库就好了 另SQL非免费版里好像有个‘镜像’功能,和一个‘复制’功能,不知道能不能用,没有学过的。。。 自己在VS2W017中做的.NET 2.0的DLL示例方法的源码: http://ohpxbzczu.bkt.clouddn.com/SQL2005ExecDLLDemo.zip

优秀的个人博客,低调大师

如何成为人尽皆知的C#开发人员

这篇指导最终会教你如何成为你的同事中最受欢迎的人,您将成为他们在休息和工作时间的聊天的英雄,甚至可以说这篇指导能帮助减少你的工作,你能得到你的同事的慷慨帮助,他们想帮你做你的工作。因为你的名声! 1、变量命名可以显示你创造潜力,不要使用标识法和准则来烦扰你自己,这些全都会限制你的灵感,如果您使用一个未知的命名方案,你会得到赞扬,您的同事会尊敬你。 bool rAgeaggainStmaShine = false ; int dd44 = 12 ; bool dude = true ; 2、成为天才,给方法和参数取一些耐人寻味的名字 public int ViriableInflationModusOperandi( int variable, int inflator) { return variable * inflator; } 3、用非常专业态度去注释你的代码。注释有助于正确的理解你的代码。 // Thisvariableisnamedaftermymom.Wyburga-ThomasiaFlandrina.Rememberit! long wtf = 1 ; 4、你的代码不要写太多的注释。过多的注释让你的同事感到紧张-因为你认为他们不明白?如果你让他们有机会思考,他们会尊重你。 代码 5、使用封装。这是面向对象的关键原则之一。比较这两个例子: Example #1: public int AddTwo( int arg) { return arg + 2 ; } public int AddOne( int arg) { return arg + 1 ; } public void Main() { int calc = AddOne(AddTwo( 5 )); } Example #2: public void Main() { int calc = 5 + 2 + 1 ; } 很明显,Example #1看起来更加稳固。它有更多的代码,一切都被封装,并且代码看起来令人印象深刻。 6、编写更少的代码。这将导致更少的错误,更少的支援的时间和更多的娱乐时间。考虑下面的结构: common.js: 代码 sqlengine.ashx: 代码 你得到:注重AJAX化的页面,快速开发,多层体系结构。 7、编写天才的代码。你的同事会感谢你的见解。 编写: int year = 0x000007D9 ; 而不是: int year = 2009 ; 编写: varsb = new StringBuilder(); sb.Append(“Error:”); sb.Append( 2001 ); sb.Append(“.”); return sb.ToString(); 而不是: return string .Format(“Error:{ 0 }.”, 2001 ); 编写: 代码 而不是: ! value 如果您按照这些简单的步骤去做,你的名字将很快被你的所有同事知道。你将是一个非常受欢迎的人-你的同事会向你提供建议,聊天和握手。其中一些同事可能会问你的秘密。如果发生这种情况,你可以给他们如下答复(要用导师的声音说): "Writing code is a transcendental process of transformation of infinite chaos into finite reality with coherence, ofcourse"。 参考原文:http://www.codeproject.com/KB/cs/Rumorous_Developer.aspx 本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2010/01/15/Rumorous_Developer.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

objective-c计算相对于现在的时间差

最近做了一个小应用程序,是读取新浪微博的。微博上面对于新发的微博,不是告诉你具体什么时候发布的,而是告诉你几秒钟之前,几分钟之前,几个小时之前之类的相对于现在的时间。可以使用下面代码来计算这个时间差。 - (NSString * )timestamp { // Calculate distance time string // time_t now; time( & now); int distance = ( int )difftime(now, createdAt); if (distance < 0 ) distance = 0 ; if (distance < 60 ) { self.timestamp = [NSString stringWithFormat: @" %d %s " , distance, (distance == 1 ) ? " second ago " : " seconds ago " ]; } else if (distance < 60 * 60 ) { distance = distance / 60 ; self.timestamp = [NSString stringWithFormat: @" %d %s " , distance, (distance == 1 ) ? " minute ago " : " minutes ago " ]; } else if (distance < 60 * 60 * 24 ) { distance = distance / 60 / 60 ; self.timestamp = [NSString stringWithFormat: @" %d %s " , distance, (distance == 1 ) ? " hour ago " : " hours ago " ]; } else if (distance < 60 * 60 * 24 * 7 ) { distance = distance / 60 / 60 / 24 ; self.timestamp = [NSString stringWithFormat: @" %d %s " , distance, (distance == 1 ) ? " day ago " : " days ago " ]; } else if (distance < 60 * 60 * 24 * 7 * 4 ) { distance = distance / 60 / 60 / 24 / 7 ; self.timestamp = [NSString stringWithFormat: @" %d %s " , distance, (distance == 1 ) ? " week ago " : " weeks ago " ]; } else { static NSDateFormatter * dateFormatter = nil; if (dateFormatter == nil) { dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterShortStyle]; [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; } NSDate * date = [NSDate dateWithTimeIntervalSince1970:createdAt]; self.timestamp = [dateFormatter stringFromDate:date]; } return timestamp; } 本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2011/04/29/2033028.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

Objective-c 中的算术函数和常数的表示

常数 常数名 说明 M_PI 圆周率(=π) M_PI_2 圆周率的1/2(=π/2) M_PI_4 圆周率的1/4(=π/4) M_1_PI =1/π M_2_PI =2/π M_E =e M_LOG2E log_2(e) M_LOG10E log_10(e) 算术函数 函数名 说明 int rand() 随机数生成。(例)srand(time(nil)); //随机数初期化int val = rand()%50; //0~49之间的随机数 int abs(int a) 整数的绝对值(例)int val = abs(-8); →8※浮点数的时候用fabs。 double fabs(double a) 浮点数的绝对值(例)double val = fabs(-12.345); →12.345※整数的时候用abs。 double floor(double a) 返回浮点数整数部分(舍弃小数点)(例)double val = floor(12.345); →12.000 double ceil(double a); 返回浮点数整数部分(舍弃小数点部分,往个位数进1)(例)double val = ceil(12.345); →13.000 double pow(double a, double b) a的b次方(例)double val = pow(2, 3); →8 double sqrt(double a) a的平方根(例)double val = sqrt(2); →1.41421356 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5077104.html,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册