随笔分类 -  C#

C#中使用代码动态改变配置文件信息
摘要:配置文件实际上就是一个XML文件,所以我们可以使用XmlDocument来进行操作。代码如下:static void Main(string[] args) { XmlDocument xDoc = new XmlDocument(); xDoc.Load("../../App.config");//加载xml文件 XmlNode xNode; XmlElement xElem1; XmlElement xElem2; xNode = xDoc.Se... 阅读全文
posted @ 2013-08-30 11:51 aparche 阅读(1292) 评论(0) 推荐(0)
C# Mutex对象的使用
摘要:C#语言有很多值得学习的地方,这里我们主要介绍C# Mutex对象,包括介绍控制好多个线程相互之间的联系等方面。如何控制好多个线程相互之间的联系,不产生冲突和重复,这需要用到互斥对象,即:System.Threading 命名空间中的 Mutex 类。我们可以把Mutex看作一个出租车,乘客看作线程。乘客首先等车,然后上车,最后下车。当一个乘客在车上时,其他乘客就只有等他下车以后才可以上车。而线程与C# Mutex对象的关系也正是如此,线程使用Mutex.WaitOne()方法等待C# Mutex对象被释放,如果它等待的C# Mutex对象被释放了,它就自动拥有这个对象,直到它调用Mutex. 阅读全文
posted @ 2013-08-27 12:18 aparche 阅读(22160) 评论(1) 推荐(2)
正由另一进程使用,因此该进程无法访问该文件
摘要:原代码如下:static void Main(string[] args) { Directory.CreateDirectory(@"d:\ok"); File.Create(@"d:\ok\abc.txt"); string str = "sve"; FileStream fs = null; try { //1、创建文件流(字节流) using (fs = new FileStream(@"d:\ok\abc.txt", FileMode.OpenOrCreate, FileAccess.Write)) { 阅读全文
posted @ 2013-08-23 12:23 aparche 阅读(32552) 评论(0) 推荐(3)
DataBindings的用法
摘要:在C#操作数据库过程中,针对一般的文本控件,比如TextBox,Label等,我们赋值直接使用类似TextBox.Text=****的方式来进行,这种方式从某种意义上来说的确是最简便的方式,但是对于复杂一些的空间,比如说DataGridView,这个时候,绑定数据源我们一般使用DataGridView1.DataSource=****的方式来进行,如果数据源稍微有更改,那么只需要重新调用绑定一遍即可。可以说这种方式是单向的,也即从数据库到UI,但是有没有一种方式能够实现数据源改变的时候,不用重新绑定DataGridView就让它能够自动刷新数据呢,当然,这里要提到的就是DataBinding了 阅读全文
posted @ 2013-06-18 10:16 aparche 阅读(9765) 评论(0) 推荐(3)
C#克隆实例
摘要:public AtmDataBase DeepClone() { MemoryStream ms = new MemoryStream(); BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(ms, this); ms.Position = 0; return bf.Deserialize(ms) as AtmDataBase; }C# 支持两种类型:“值类型”和“引用类型”。值类型(Value Type)(如 char、int 和 float)、枚举类型和结构类型。 引用类型(Reference Type) 包括类 (... 阅读全文
posted @ 2013-04-03 17:27 aparche 阅读(2357) 评论(0) 推荐(0)
使用委托的优点,委托和事件的区别和联系
摘要:委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。 将方法作为方法的参数我们先不管这个标题如何的绕口,也不管委托究竟是个什么东西,来看下面这两个最简单的方法,它们不过是在屏幕上输出一句问候 阅读全文
posted @ 2013-03-22 17:45 aparche 阅读(930) 评论(0) 推荐(0)
Winform中创建用户控件
摘要:用户控件可以让开发人员对VS控件进行组装。下面我们来创建一个按钮的用户控件我们可以给它添加属性,并且添加相应鼠标移入、移出事件。步骤:1、创建一个项目,该项目主要用来设计用户控件。2、创建一个用户控件窗体,用来设计用户控件。3、向用户控件窗体中添加一个按钮(button1),给它添加相应的移入、移出事件,实现移入时按钮的背景设置一个图片,移出的时候背景设置另一个图片。 private void button1_MouseEnter(object sender, EventArgs e) { this.button1.Image = Image.FromFile(@"images\背景 阅读全文
posted @ 2013-03-14 22:16 aparche 阅读(4135) 评论(0) 推荐(0)
.NET简谈事务、分布式事务处理
摘要:今天这篇文章我们将使用.NET C#来进行事务性编程,从浅显、简单的本地事务开始,也就是我们用的最多的ADO.NET事务处理,然后我们逐渐扩大事务处理范围,包括对分布式事务处理的使用,多线程事务处理的使用。数据库事务处理数据库事务处理我们基本都很熟悉了,begin Transaction ……end Transaction,将要进行事务性的操作包在代码段里,为了便于文章有条理的讲解下去,我还是在这里穿插一个简单的小示例,便于与后面的代码进行对比分析。例1:我们在数据库里建两张表,也就是很简单一列信息。表1名:test表2名:test2目的是为了掩饰事务的特性,所以我们这里给表1test的nam 阅读全文
posted @ 2013-03-13 16:07 aparche 阅读(284) 评论(0) 推荐(0)
C#遍历枚举类型的所有元素
摘要:写个小东西,刚好用到枚举类型,需要显示在DropDownList控件中。尝试了下,用如下方法可以实现。比如定义了一个错误的枚举类型1publicenumeErrorDetailCode:int2{3登陆成功=0,4登出=1,5应用错误=2,6成功=16,7失败=178}需要引用using System;然后在循环中,遍历枚举对象的所有元素Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1foreach(intmyCodeinEnum.GetV 阅读全文
posted @ 2013-01-30 17:50 aparche 阅读(13968) 评论(0) 推荐(1)
C#静态构造函数总结
摘要:今天花了一些时间把静态构造函数的用法总结了一下,希望高手们指点。谢谢! 静态构造函数既没有访问修饰符,也没有参数。如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的静态构造函数。在创建第一个类实例或任何静态成员被引用时,.NET将自动调用静态构造函数来初始化类,也就是说我们无法直接调用静态构造函数,也就无法控制什么时候执行静态构造函数了。如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在调用 Main 方法之前执行。如果类中的静态字段带有初始化,则静态字段的初始化语句将在静态构造函数之前运行。一个类只能有一个静态构造函数。无参数的构造 阅读全文
posted @ 2013-01-07 11:30 aparche 阅读(264) 评论(1) 推荐(0)
Exception.InnerException 属性的使用
摘要:例子(部分代码):protected void Button3_Click(object sender, EventArgs e){try{Divide(10,0);}catch (Exception ex){Label3.Text = "产生的异常信息如下:<br/>";Label3.Text += ex.Message + "<br/>";////直接使用InnerException属性可以获取内部异常的信息Label3.Text += ex.InnerException.Message;}}//div方法将抛出其产生的异常, 阅读全文
posted @ 2013-01-03 20:47 aparche 阅读(3670) 评论(0) 推荐(0)
datagridview使用tooltip控件显示单元格内容
摘要:代码如下: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;using System.Data.SqlClient;namespace Exam2{ public partial class MainForm : Form { private int cellColumnIndex = -1;// 阅读全文
posted @ 2013-01-03 11:30 aparche 阅读(3098) 评论(0) 推荐(0)
C#使用Dotfuscator混淆代码以及加密
摘要:C#编写的代码如果不进行一定程度的混淆和加密,那么是非常容易被反编译进行破解的,特别是对于一些商业用途的C#软件来说,因为盯着的人多,更是极易被攻破。使用Dotfuscator可以实现混淆代码、变量名修改、字符串加密等功能。这里介绍的是DotfuscatorPro_4.9.7750_2.0版本,有需要的可以到网上搜索下载https://skydrive.live.com/?cid=d2b11227abf128d8&id=D2B11227ABF128D8%21104。安装Dotfuscator好打开界面,有几个需要配置的地方:Options、Input、Rename、StringEncr 阅读全文
posted @ 2012-10-06 17:01 aparche 阅读(75645) 评论(5) 推荐(6)
线程中设置窗体控件的值出现异常(线程间操作无效: 从不是创建控件“textBox1”的线程访问它)
摘要:在构造方法中添加Form.CheckForIllegalCrossThreadCalls = falsepublic Form1() { InitializeComponent(); Form.CheckForIllegalCrossThreadCalls = false; } 阅读全文
posted @ 2012-06-29 16:42 aparche 阅读(374) 评论(0) 推荐(0)
判断系统中有没有安装某个服务
摘要:代码如下:注意:先要添加引用System.ServiceProcessclass Program { static void Main(string[] args) { Console.WriteLine(ServiceIsExisted("MSSQLSERVER")); } public static bool ServiceIsExisted(string serviceName) { ServiceController[] services = ServiceController.GetServices(); foreach (ServiceController s 阅读全文
posted @ 2012-06-28 15:49 aparche 阅读(317) 评论(0) 推荐(0)
datagridview 上一条数据,下一条数据实现
摘要:private void button2_Click(object sender, EventArgs e) { if (dataGridView1.CurrentCell.RowIndex !=0) { dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; this.dataGridView1.CurrentCell = this.dataGridView1[this.dataGridView1.CurrentCell.ColumnIndex, this.dataGridView1.CurrentCell 阅读全文
posted @ 2012-06-07 17:50 aparche 阅读(706) 评论(0) 推荐(0)
C#中的静态构造函数
摘要:(1)用于对静态字段、只读字段等的初始化。 (2)添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的。 (3)类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者引用类的任何静态成员才激发静态构造函数 (4)静态构造函数是不可继承的,而且不能被直接调用。 (5)如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在调用 Main 方法之前执行。 任何带有初始值设定项的静态字段,则在执行该类的静态构造函数时,先要按照文本顺序执行那些初始值设定项。 (6)如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态... 阅读全文
posted @ 2012-01-05 10:14 aparche 阅读(378) 评论(0) 推荐(0)
winform出现"LC.exe"已退出,代码为-1
摘要:解决方法:1、把项目文件夹下Properties文件夹下的licenses.licx文件删除,重新编译即可;2、文本方式打开*.csproj文件,在文件中查找licenses.licx字样,删除对应节点。 阅读全文
posted @ 2011-11-07 21:09 aparche 阅读(337) 评论(0) 推荐(0)
C# 模拟post数据提交时 出现如下错误: System.Net.WebException: 远程服务器返回错误: (417) Expectation Failed 的解决办法
摘要:一般情况的代码,重点在出错的那段代码,其他的代码可以根据自己的情况写相应的代码:HttpWebRequest req=WebRequest.Create(url1) as HttpWebRequest;req.Method="POST";req.Accept="application/json, text/javascript, */*";req.Referer=url2;req.UserAgent="Mozilla/4.0";req.ContentType="application/x-www-form-urlencode 阅读全文
posted @ 2011-07-09 15:13 aparche 阅读(4479) 评论(0) 推荐(0)
如何遍历ComboBox的列表项
摘要:for(int i = 0; i < comboBox1.Items.Count; i++ ) MessageBox.Show(comboBox1.GetItemText(comboBox1.Items[i])); 阅读全文
posted @ 2011-07-08 09:54 aparche 阅读(1194) 评论(0) 推荐(0)