
C#
kevin_水滴石穿
平心静气,日积月累,厚积薄发
展开
-
MVVM、MVVMLight、MVVMLight Toolkit之我见
我想,现在已经有不少朋友在项目中使用了MVVMLight了吧,如果你正在做WPF,Silverlight,Windows Phone的开发,那么,你有十分必要的理由了解MVVM和MVVMLight。我写这篇文章的目的,是给大家做一个总结,以便更多的朋友了解并掌握MVVM。 首先,要说一下MVVM的概念。MVVM严格来说,并不是一种框架,而是一个设计的模式吧。与它有关的设计模式还有MVC (转载 2015-08-23 11:23:36 · 900 阅读 · 0 评论 -
由创建文件想起的。。。
先给大家看一段代码,如下所示: using (FileStream fs = new FileStream(PersonInfoFilePath, FileMode.OpenOrCreate)) { using (StreamWriter sw = new StreamWriter(fs))原创 2013-05-09 18:19:11 · 872 阅读 · 0 评论 -
C#判断操作系统的位数
在.net 4.5中,判断操作系统不用再写方法去判断了,有直接可以利用的属性了哦,如下所示:Environment.Is64BitProcess 属性 .NET Framework 4.5 确定当前进程是否为 64 位进程。 当然如果是用的.net 4.5以前的童鞋也不必担心,同样也可以用以下的方法来实现判断系统位数。原创 2013-03-26 15:49:25 · 3549 阅读 · 0 评论 -
比较2个DataTable中的内容是否相同的方法
DataTable可以通过RowStatus来判断状态是否发生了改变。但是有些时候我们希望在行状态即使为Modified的情况下也不要提示内容发生了变化,这个时候我们可能就需要自己写方法去判断了。比如有一个DataTable中有选择列的状态发生了变化,但是我在保存时不希望系统判断DataTable的行状态发生了变化而将数据重新更新到数据库中。 这样我们可以将需要判断DataTa原创 2012-10-22 19:09:04 · 4605 阅读 · 0 评论 -
带CheckBox列头的DataGridView(一)
在项目的开发中,在DataGridView中将CheckBox作为第一列使用的很平常,使用微软自带DataGridView中的DataGridViewCheckBoxCell,但是微软自带的DataGridView中又没有能够将CheckBox作为列头来做全选和全取消选择的功能。所以如果想实现在列头上显示一个CheckBox并且点击CheckBox来实现全选和全取消,就没有现成的。但是办法是人想出翻译 2012-07-23 10:41:49 · 6132 阅读 · 3 评论 -
带CheckBox列头的DataGridView(二)
上次从CodeProject上发现了一个老外写的开源的带CheckBox列头的类,当时就将文章翻译了过来并做成了一个小Demo,供大家参考,最近在开发中需要用到这个类,因此加以了改进,上次还有一个兄弟提到问怎样实现取消列表中选择的一行,列头的全选CheckBox也能处于不选中状态。这是一个很好的问题,我最近几天花了些时间,将其进行了些修改。终于可以实现这一功能了。废话不多说了,代码如下:原创 2012-09-14 20:43:41 · 3212 阅读 · 0 评论 -
DataView没有使用New来初始化的杯具
最近发现系统有时在打开订单浏览画面时,会抛出在0行没有数据的错误提示,刚开始以后是搜索条件的问题,而且出现的次数比较少,也没有规律,对系统操作也没有很大的影响,因此没有特别关照。但是今天通过连串偶然的操作,发现这个错误可以这样重现,所以我就决定查出缘由来。通过一步步的跟踪,发现就是由于每次使用DataView时都没有使用New来初始化,每次都是声明后,直接通过DataView dv =原创 2012-08-09 22:21:08 · 724 阅读 · 0 评论 -
使用C#判断数据库服务器是否已经启动
在很多项目启动的时候都需要连接到数据库,因此判断数据库服务器是否启动就十分必要了,如何判断数据库服务器是否启动呢?可以通过判断数据库服务是否启动来判断,当然我看了下网上也有人说通过注册表也可以判断,下面我就说说我的实现方式:/// /// 判断数据库服务是否已经启动,如果已经启动就返回True,否则返回False /// ///原创 2012-05-07 15:18:08 · 2438 阅读 · 2 评论 -
判断是否是IP地址格式
使用正则表达式来判断IP地址是否正确的方法。 /// /// 判断是否是IP地址格式 0.0.0.0 /// /// 待判断的IP地址 /// true or false public static bool IsIPAddress(string str1) {转载 2012-05-02 09:53:56 · 887 阅读 · 0 评论 -
获取用户电脑的上网IP地址
在项目中经常要获取用户的上网的IP地址,如何获取用户的IP地址,方法很多,现在介绍以下2种。/// /// 获取本机在局域网的IP地址 /// /// private string GetLocalIPAddress() { System.Net.IPAddress[] a原创 2012-05-02 09:51:39 · 1096 阅读 · 0 评论 -
压缩文件类的ZipFile
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO.Packaging;using System.IO;using Utilities.IO.ExtensionMethods;using Utilities.DataTypes.原创 2012-01-06 10:12:57 · 3987 阅读 · 0 评论 -
C#解析HTML
在搜索引擎的开发中,我们需要对网页的Html内容进行检索,难免的就需要对Html进行解析。拆分每一个节点并且获取节点间的内容。此文介绍两种C#解析Html的方法。第一种方法:用System.Net.WebClient下载Web Page存到本地文件或者String中,用正则表达式来分析。这个方法可以用在Web Crawler等需要分析很多Web Page的应用中。估计这也是大家最直接,转载 2012-01-03 15:06:53 · 710 阅读 · 0 评论 -
使用C#ping主机的方法
在我们开发项目时经常会遇到要ping主机的问题,现在我封装了一个ping主机的方法,代码如下: /// /// Ping指定的主机,看能否ping通 /// /// (主机地址) /// (超时时间,默认:1s) /// True if a response is原创 2012-02-01 11:45:21 · 869 阅读 · 0 评论 -
分享一个异步发送邮件的类
首先要定义一个邮件信息的基类,如下所示:/// /// Base message class used for emails /// public class Message { #region Constructor /// /// Constructor ///原创 2012-02-01 11:36:27 · 858 阅读 · 0 评论 -
c#自杀程序的关键方法
public static void TestForKillMyself() { string bat = @"@echo off :tryagain del %1 if exist %1 goto tryagain del %0"; File.WriteAllText("killme.bat转载 2012-01-29 14:36:50 · 1084 阅读 · 3 评论 -
一个web.Config或app.Config自定义段configSections的示例
一个web.Config或app.Config自定义段configSections的示例转载 2014-05-06 22:51:22 · 1025 阅读 · 0 评论 -
Config程序配置文件操作实践进阶之ConfigurationSectionGroup
今天又进一步对System.Configuration下的ConfigurationSectionGroup类及相关的类与方法进行了研究。发现要构建多层次嵌套的XML标签 则必须用到ConfigurationSectionGroup类我们看一下下面这个XML文件:转载 2014-05-06 23:06:33 · 675 阅读 · 0 评论 -
WPF:理解ContentControl——动态添加控件和查找控件
WPF:理解ContentControl——动态添加控件和查找控件我认为WPF的核心改变之一就是控件模型发生了重要的变化,大的方面说,现在窗口中的控件(大部分)都没有独立的Hwnd了。而且控件可以通过所谓的模板提供各种各样的表现形式。这一篇就来谈一谈ContentControl,的第一部分,动态添加控件和查找控件什么是ContentControl呢?其实WPF的绝大部分的控件,还包转载 2014-06-23 17:42:37 · 3745 阅读 · 0 评论 -
谈谈关于MVP模式中V-P交互问题
在差不多两年的时间内,我们项目组几十来号人都扑在一个项目上面。这是一个基于微软SCSF(Smart Client Software Factory)的项目,客户端是墨尔本一家事业单位。前两周,我奉命负责对某个模块进行Code Review工作,在此期间,发现了一些问题,也有了一些想法。不过,有些想法可能还不是很成熟,不能完全保证其正确性,有机会写出来讨论一下。今天来说说关于MVP的一些想法。一转载 2015-08-23 11:17:33 · 3249 阅读 · 0 评论 -
ASP.NET MVC 4 插件化架构简单实现-思路篇
ASP.NET MVC 4 插件化架构简单实现-思路篇分类: ASP.NET C# 2014-12-23 15:06 234人阅读 评论(0)收藏 举报目录(?)[+]用过和做过插件的都会了解插件的好处,园子里也有很多和讨论,但大都只些简单的加载程序集什么的,这里主要讨论的就是使用 ASP.NET MVC 4 来实现每个插件都可以完全从主站点转载 2015-08-23 10:09:08 · 988 阅读 · 0 评论 -
C#操作Excel总结
0. 导入命名空间: 1234using Microsoft.Office.Core;using Microsoft.Office.Interop.Excel;using System.IO;using System.Reflection; 1. 如何打开已有excel文档,或者转载 2015-08-28 20:34:16 · 3399 阅读 · 0 评论 -
MVC, MVP, MVVM比较以及区别(下)
上一篇得到大家的关注,非常感谢。一些朋友评论中,希望快点出下一篇。由于自己对于这些模式的理解也是有限,所以这一篇来得迟了一些。对于这些模式的比较,是结合自己的理解,一些地方不一定准确,但是只有亮出自己的观点,才能抛砖引玉不是? 欢迎各位拍砖。:)阅读目录:四. MVP模式 4.1 MVP的思想 4.2 UI界面接口化 4.3 Presente转载 2015-08-23 11:11:13 · 3465 阅读 · 1 评论 -
ASP.NET MVC 4 插件化架构简单实现-思路篇
用过和做过插件的都会了解插件的好处,园子里也有很多和讨论,但大都只些简单的加载程序集什么的,这里主要讨论的就是使用 ASP.NET MVC 4 来实现每个插件都可以完全从主站点剥离出来,即使只是一个插件,也是一个完整的站点,同时也可以和其它插件一起组装成一个庞大的系统。参考资料:ASP.NET MVC 4 源码。Orchard 源码。MVC3PlugInDemo 源转载 2015-08-23 10:04:00 · 3084 阅读 · 0 评论 -
MVC, MVP, MVVM比较以及区别(上)
MVC, MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式。以前只是对它们有部分的了解,没有深入的研究过,对于一些里面的概念和区别也是一知半解。现在一边查资料,并结合自己的理解,来谈一下对于这三种模式思想的理解,以及它们的区别。欢迎各位高手拍砖。阅读目录:一. MVC, MVP, MVVM诞生的需求?二. 一段典型的耦合代码三. MVC模式 3转载 2015-08-23 10:46:10 · 11751 阅读 · 2 评论 -
C#访问sqllite数据库的数据库访问类
最近在一个项目中需要用到sqllite数据库,因此根据项目需要收集了sqllite的数据库访问类的资料,然后根据实际需求进行了改装,并成功的运用到了项目中,现在项目也成功上线,特将此代码分享给大家: /// /// 数据库操作抽象 /// public interface IDataAccess { ///原创 2015-04-25 10:41:35 · 921 阅读 · 0 评论 -
Sqllite的dll的不同版本针对不同windows系统平台
最近在开发一个使用了sqllite数据库项目时发现由于目前sqllite针对x86的系统和x64的系统有不同的dll,当初自己开发时用的是x86的dll,即dll版本为1.0.66.0的dll,结果在选择了目标平台为x64时编译不了,后来查了些资料,在网上找了一个可以在x64系统平台上运行的版本,在x64上系统平台能够运行的dll的版本号为:1.0.81.0.这次由于这个dll的版本问题花原创 2015-04-25 10:54:40 · 1171 阅读 · 0 评论 -
用户登录保存密码等信息的可逆加解密算法
关于加密解密的可逆算法,网上一搜一大把,我自己也是在网络上找了很多,借鉴了很多童鞋的思路,然后根据实际需要进行了些调整,然后在项目中进行了应用,现在将此加密解密类的代码贴出来给大家分享下: /// /// 用户登录保存本地密码等信息的可逆加解密算法; /// public class EncryptDecrypt { pr原创 2015-04-15 16:22:51 · 823 阅读 · 0 评论 -
C#访问Access数据库的数据库操作类
最近做了一些关于Access数据库的应用开发,其中涉及了对Access数据库的访问,现在将我们自己用到的几个基类贴出来给大家看看,由于涉及功能并不多,其中有些也是借鉴了他人的代码,功能也比较简单,大家不要见笑了,呵呵 /// /// 数据库操作抽象 /// public interface IDataAccess {原创 2015-04-15 16:14:30 · 1878 阅读 · 1 评论 -
XML 和 List 互转类
XML 和 List 互转类 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xml;namespace XmlHelper{ /// /// 实体转Xml,Xml转实体类 //转载 2014-08-24 11:49:34 · 8394 阅读 · 0 评论 -
C#中将结构类型数据存储到二进制文件中方法
以往在vb6,v转载 2014-07-13 11:49:20 · 6265 阅读 · 0 评论 -
rdlc报表在vs2008下编辑正常,在vs2012上编辑就报错
最近我们的系统的开发工具由vs2008升级到了2012,由于系统中很多报表都是用rdlc来开发的,今天遇到有报表需要改动的需求,就直接使用vs2012对rdlc报表进行了编辑,结果改完后,怎么预览报表都报错。后来我通过vsts源代码管理器比较了编辑前后的报表文件,结果发现我只是改动其中的一个属性,但是vs2012在编辑rdlc报表文件时,自动加入了很多属性和设置到了报表中,我只会撤销修原创 2014-07-09 19:13:17 · 2575 阅读 · 0 评论 -
C#访问MySQL数据库的方法
C#访问MySQL数据库的方法(1)首先需要下载C#访问MySQL数据库的ADO.NET驱动程序下载地址为:http://dev.mysql.com/downloads/connector/net/6.0.html我下载的版本为: mysql-connector-net-6.3.8.msi下载地址如下url:http://dev.mysql.转载 2014-06-23 22:16:33 · 1701 阅读 · 1 评论 -
C#编程中的66个好习惯,你有多少个?
最近在网上发现这篇文章,看看自己的编程习惯掌握了多少?1. 避免将多个类放在一个文件里面。 2. 一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面。3. 一个文件最好不要超过500行的代码(不包括机器产生的代码)。 4. 一个方法的代码长度最好不要超过25行。5. 避免方法中有超过5个参数的情况。使用结构来传递多个参数。 6. 每行代码不要超过80个转载 2012-01-16 15:03:53 · 617 阅读 · 0 评论 -
分享一个正则表达式帮助类
using System.Globalization;using System.Text.RegularExpressions; /// /// 正则表达式帮助类 /// public sealed class RegexHelper { private RegexHelper() {原创 2012-01-15 10:29:17 · 816 阅读 · 0 评论 -
[C#]分享一个以前的项目使用的DataBaseAccess类
最近在整理以前的资料时,看到了以前我们在项目中经常用的一个数据库访问类,虽然现在已经可以用代码生成工具生成比较完整的数据库访问类,但是这个类在我们以前的项目中久经考验,所以我觉得还是比较好用,废话不多说了,上代码://======================================================================//// fil原创 2011-12-22 11:49:05 · 917 阅读 · 0 评论 -
执行命令类
最近经常要在C#中使用cmd命令,因此就封装了几个方法来使用。代码如下:/// /// 执行cmd.exe命令 /// ///命令文本 /// 命令输出文本 public static string ExeCommand(string commandText) {原创 2011-12-22 09:41:46 · 561 阅读 · 0 评论 -
C#获取当前运行的源代码的文件名和当前源代码的行数的方法
在C#中记录日志时,为了以后查找错误或者跟踪的方便,最好能记录下出错的源代码的文件名和出错的源代码的行数。这2个方法如下:/// /// 取得当前源码的哪一行 /// /// public static int GetLineNum() { System.Diagnos原创 2011-12-12 11:07:04 · 7818 阅读 · 2 评论 -
【C#】 Socket通讯客户端程序
这段时间一直在优化Socket通讯这块,经常和Socket打交道,现在分享给大家一个小的案例,代码如下:byte[] m_dataBuffer = new byte [10]; IAsyncResult m_result; public AsyncCallback m_pfnCallBack ; private System.Windo原创 2011-12-20 10:40:32 · 1851 阅读 · 2 评论 -
C#将jpg格式图片合成到bmp格式图片中
在C#中,有时为解决几个图片显示的问题,比如有一张背景图,还有一直是要显示在背景图上的图片,如何能将这2张图片合成一张图片显示呢?下面的例子提供了这样一个解决的方法,代码如下://strwinepath酒的图片//strBackPic 背景图片private void TestPaint(string strwinepath,string strWineDetailBackPi原创 2011-12-19 10:47:50 · 1817 阅读 · 0 评论 -
Stopwatch计时器、秒表 C#
.NET2.0也提供了这样一个秒表:Stopwatch类,它可以比较精确地测量时间。 速度测试:软件的性能和可测性是一个复杂的主题。要确保应用程序能够满足用户的期望,就需要在开发周期内考虑它的性能和可测性。这在设计阶段至关重要,一个糟糕的设计几乎肯定会导致糟糕的用户体验。然而,仅仅有好的设计也不能保证程序能够高效地运行,最终代码的质量同样重要。量度一个运行时间较长的例程相当简单。如果一转载 2011-12-09 11:24:33 · 3778 阅读 · 0 评论