随笔分类 -  .Net

摘要:最近做项目时,引用了一个第三方的程序集,代码层面没有任何语法错误,编译提示:命名空间“System.Net”中不存在类型或命名空间名称“FtpClient”。是否缺少程序集引用? E:\Project\xxx\Services\SyncTask.cs 6 18 xxx。找了大半天没有找到错误原因,最... 阅读全文
posted @ 2014-12-03 12:51 StanZhai 阅读(12420) 评论(3) 推荐(2) 编辑
摘要:最近写了个正则表达式匹配的工具,可以按照组名输出匹配内容,还是挺方便的,代码留存一下,以后用的话,直接copy了。 Regex regex = new Regex(this.textBoxRegex.Text); Match result = regex.... 阅读全文
posted @ 2014-08-14 20:43 StanZhai 阅读(1571) 评论(0) 推荐(0) 编辑
摘要:在使用CefSharp的过程中遇到一个坑爹的错误。从GitHub的项目主页:https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#Runtime_dependencies和Stackoverflow上:http://... 阅读全文
posted @ 2014-08-13 22:06 StanZhai 阅读(11475) 评论(0) 推荐(1) 编辑
摘要:项目背景最近忙着给部门开发一套交互式的报表系统,来替换原有的静态报表系统。老系统是基于dotnetCHARTING开发的,dotnetCHARTING的优势是图表类型丰富,接口调用简单,使用时只需绑定数据源即可(指定连接字符和sql语句,简单的配置一下就能出图),支持生成静态图表图片;缺点就是生成好的图是图片,传到了前台就失去了交互性(当然它还提供了一个jsCharting,不过感觉交互性做的还是不够好),再有就是这东东是收费的呀,用的话需要折腾破解版本。我最终选择了Highcharts(Interactive JavaScript charts for your webpage)来展现前台图 阅读全文
posted @ 2014-01-06 11:36 StanZhai 阅读(8174) 评论(12) 推荐(6) 编辑
摘要:场景最近对爬虫的数据库架构做调整,需要将数据迁移到MongoDB上去,需要重新实现一个针对MongoDB的Dao泛型类,好吧,动手开工,当实现删除操作的时候问题来了。我们的删除操作定义如下:void Delete(TEntity entity)。TEntity是我们的泛型类。而MongoDB官方驱动自带的删除操作是这样的:123// 假设数据模型为已定义的Articlevar query = Query.EQ(t => t.Id, id);coll.Remove(query);Dao操作的接口是不能修改的,这就要求我们必须实现以下操作:获取entity的Id值构造lambda表达式用于获 阅读全文
posted @ 2014-01-04 14:12 StanZhai 阅读(3168) 评论(7) 推荐(1) 编辑
摘要:应用场景我们开发的控制台应用,在运行阶段很有可能被用户Ctrl+C终止或是被用户直接关闭。如果我们不希望用户通过Ctrl+C终止我们的程序,就需要对Ctrl+C或关闭事件作处理。处理方法在.net平台下Console类有个CancelKeyPress事件可以处理Ctrl+C,不过对于直接关闭控制台应用,这种处理就无能为力了。不过Windows API中有个SetConsoleCtrlHandler函数可以处理这两种关闭事件。C#处理代码如下:1234567891011121314151617181920212223242526272829303132static class Program{ 阅读全文
posted @ 2014-01-03 12:07 StanZhai 阅读(15463) 评论(6) 推荐(7) 编辑
摘要:记得前段时间帮同事写了个解析账号并入库的小工具,来批量导入账号信息,账号量相当大,程序每读取一条记录便执行一次insert来插入数据,整整跑了一下午才把账号全部入库。今天又接到同事类似的需求,不过这次的账号量更大,考虑到上次遇到的问题,这次打算采用某种方案来提高插入数据的性能。了解了下SQLServer批量插入数据的技术,主要有两种:Bulk和表值参数(SQLServer 2008的特性),这两种方式相比循环使用insert插入数据,效率和性能明显上升。使用表值参数带来的提升更为显著。使用表值参数插入数据的一个例子1234567891011121314151617181920212223242 阅读全文
posted @ 2014-01-03 11:56 StanZhai 阅读(1994) 评论(0) 推荐(2) 编辑
摘要:准备我们使用CookComputing.XmlRpcServerV2 3.0.0来构建XmlRpc服务器。新建一个控制台项目,在项目中添加对CookComputing.XmlRpcServerV2 3.0.0的引用,可以使用nuget来安装。12PM> Install-Package xmlrpcnetPM> Install-Package xmlrpcnet-server编写服务我这里写了个非常简单的服务,代码如下:12345678public class SimpleService : XmlRpcListenerService{ [XmlRpcMethod] public i 阅读全文
posted @ 2014-01-02 21:56 StanZhai 阅读(1936) 评论(7) 推荐(5) 编辑
摘要:事由下午收到一条短信,内容是“尊敬的用户, 您的电子密码器于次日失效!请尽快进入我行手机维护网站wap.95588bm.com更新!【工 行 】”,一看发件人是:+8618193326403,再加上本人也不用工行的银行卡,很明显的是骗人的短信嘛。做过Web的人应该也清楚这个网站应该就是钓鱼网站了。好奇的打开网站看了看:又看了下各个登陆链接的入口,发现都是一样的,点开看看了:随便输入了个手机号和密码,填写验证码,点登陆后:是个模拟升级的页面,骗人的。本人向来痛恨这人骗人的行为,心想,我何不写个小程序,向他提交随机的手机号和假的密码,让程序不停的提交表单,干扰骗子,用来解恨。开始动手——收集信息从 阅读全文
posted @ 2013-09-13 17:56 StanZhai 阅读(11650) 评论(76) 推荐(69) 编辑
摘要:Contract类型属性描述ServiceContractOperationContract描述一个服务可以提供的操作,通常将一个类的方法以服务的形式对外提供,将CLR类型映射为WSDLDataContractDataMember描述一种数据类型,将CLR类型映射为XSDMessageContractMessageHeader,MessageBody描述消息报文格式,将CLR类型映射为SOAP消息 阅读全文
posted @ 2012-11-21 18:30 StanZhai 阅读(418) 评论(0) 推荐(0) 编辑
摘要:1.去官网下载最新版的Spring.NET2.新建ASP.NET MVC3空项目(我的项目名:ApricotCMS),并在项目中引用Spring.NET的Common.Logging.dll,Spring.Core.dll,Spring.Web.dll,Spring.Web.Mvc3.dll3.配置Spring。打开Web.config,在根节点添加如下代码: 4.在项目上右击,添加新建文件夹,命名Config,并在其中新建xml文件,命名Controller.xml5.配置Controller.xml6.添加Controlle... 阅读全文
posted @ 2011-09-07 20:18 StanZhai 阅读(1097) 评论(2) 推荐(0) 编辑
摘要:指定的转换无效,一般是数据类型不匹配导致的。检查NHibernate的类文件和.hbm.xml文件中的类型描述是否一致。 阅读全文
posted @ 2011-08-10 21:37 StanZhai 阅读(470) 评论(0) 推荐(0) 编辑
摘要:首先设置好DataGrid控件的相关属性,注意XAML代码文件中的列绑定要和源数据的列名一致,如:Binding="{Binding No}"详细设置如下:this.dataGrid1.ItemsSource = from i in dc.Student select i;运行效果如下:总结:Linq很好很强大!使用Linq 一行代码搞定数据绑定 作者: 翟士丹 发表于 2011-04-06 09:51 原文链接评论: 0 查看评论 发表评论最新新闻:· 来无影去无踪 黑客组织Lulzsec震撼互联网(2011-07-01 22:22)· Faceboo 阅读全文
posted @ 2011-04-06 09:51 StanZhai 阅读(267) 评论(0) 推荐(0) 编辑
摘要:使用Linq to Sqlite 出现异常Object already attached百度,谷歌,微软的网站上均没有找到这个异常的相关信息,经研究发现,是数据库设计的问题,要使用Linq操作数据库,数据表中必须有主键,如果是Linq to SQL的话,没有主键,它会给你指出错误,但是我用的是Linq to Sqlite它毕竟不像微软的Linq to SQL那么强大,以至于半天都没找出错来。作者: 翟士丹 发表于 2011-04-06 09:42 原文链接评论: 0 查看评论 发表评论最新新闻:· 来无影去无踪 黑客组织Lulzsec震撼互联网(2011-07-01 22:22)&# 阅读全文
posted @ 2011-04-06 09:42 StanZhai 阅读(238) 评论(0) 推荐(0) 编辑
摘要:.NET WinForm获取窗口句柄很方便,this.Handle搞定。WPF就有些麻烦了,获取方法如下:引入命名空间:using System.Windows.Interop;获取方法:new WindowInteropHelper(this).Handlethis是个Window类的实例作者: 翟士丹 发表于 2011-04-06 09:40 原文链接评论: 0 查看评论 发表评论最新新闻:· 来无影去无踪 黑客组织Lulzsec震撼互联网(2011-07-01 22:22)· Facebook社交广告影响:扩大传统内容影响力(2011-07-01 22:19) 阅读全文
posted @ 2011-04-06 09:40 StanZhai 阅读(2221) 评论(0) 推荐(0) 编辑
摘要:最近使用C#重做了点名系统(要用到TTS,让计算机点名)使用了SAPI,在这里总结一下SpVoice的使用方法。要使用SAPI,首先添加引用DotNetSpeech,请自行下载DotNetSpeech.dll。初始化对象,SpVoice voice = new DotNetSpeech.SpVoiceClass();朗读时,使用voice.Speak(string,SpeechVoiceSpeakFlags.SVSFlagsAsync);暂停,使用voice.Pause();从暂停中继续刚才的朗读,使用voice.Resume();停止功能是大多资料都没有写清楚的,而且在网上很少能找到,这里使 阅读全文
posted @ 2011-04-06 09:34 StanZhai 阅读(2319) 评论(2) 推荐(0) 编辑
摘要:解决方案,修改app.config配置文件的startup节点,修改内容如下: 作者: 翟士丹 发表于 2011-04-06 09:25 原文链接评论: 0 查看评论 发表评论最新新闻:· 来无影去无踪 黑客组织Lulzsec震撼互联网(2011-07-01 22:22)· Facebook社交广告影响:扩大传统内容影响力(2011-07-01 22:19)· Chrome浏览器全球市场份额6月份升至13.1%(2011-07-01 21:19)· 微软Windows Phone 7应用突破25000个(2011-07-01 21:11)· 传 阅读全文
posted @ 2011-04-06 09:25 StanZhai 阅读(246) 评论(0) 推荐(0) 编辑
摘要:初次学习LINQ to Entities,给出两种查询的示例代码。基于方法的查询:using (AdventureWorksEntities AWEntities = new AdventureWorksEntities()){ ObjectSet contacts = AWEntities.Contacts; ObjectSet orders = AWEntities.SalesOrderHeaders; var query = contacts.SelectMany( contact => orders.Where(order => (contact.ContactID == 阅读全文
posted @ 2011-04-06 09:24 StanZhai 阅读(202) 评论(0) 推荐(0) 编辑