随笔分类 -  C#

Internal类或Internal成员讲解
摘要:原文地址:http://www.cnblogs.com/JeffreyZhao/archive/2009/08/26/internal-member-is-bad-smell.html前言最近除了搞ASP.NET MVC之外,我也在思考一些编程实践方面的问题。昨天在回家路上,我忽然对一个问题产生了较为清晰的认识。或者说,原先只是有一丝细微的感觉,而现在将它和一些其他的方面进行了联系,也显得颇为“完备”。这就是问题便是:如何对待类中internal成员。我现在认为“类中的internal成员可能是一个坏味道”,换句话说,如果您的类中出现了internal的成员,就可能是设计上的问题了。可能这个命 阅读全文

posted @ 2012-10-16 10:44 烟雨飘零 阅读(5238) 评论(0) 推荐(0)

序列化与反序列化 BinaryFormatter.Serialize 方法 (Stream, Object)
摘要:1 using System; 2 using System.IO; 3 using System.Collections; 4 using System.Runtime.Serialization.Formatters.Binary; 5 using System.Runtime.Serialization; 6 7 public class App 8 { 9 [STAThread]10 static void Main() 11 {12 Serialize();13 Deserialize();14 }15 16 ... 阅读全文

posted @ 2012-09-20 10:25 烟雨飘零 阅读(3490) 评论(0) 推荐(0)

下载完提示 是否干一件事
摘要:if (DialogResult.Yes == MessageBox.Show( "文件已下载完成,是否打开文件?", "打开文件", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)) { try { Process.Start(_fil... 阅读全文

posted @ 2012-06-16 12:06 烟雨飘零 阅读(148) 评论(0) 推荐(0)

报表参数处理
摘要:using Microsoft.Reporting.WinForms;用来处理一个表中无法绑定其他数据集的问题选择【报表】菜单,【报表参数】菜单,在报表参数界面中,添加一个报表参数取名为“prod_cat_sub”,类型为String,提示信息为“输入产品系列名称”,允许空白值;ReportParameter p = new ReportParameter("prod_cat_sub", "Component");reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p }); 阅读全文

posted @ 2012-06-16 12:05 烟雨飘零 阅读(115) 评论(0) 推荐(0)

多表初始化
摘要:OracleDataAdapter da = new OracleDataAdapter(cmd); da.TableMappings.Add("Table", "dtbInitialInfo"); da.TableMappings.Add("Table1", "dtblWorkStageList"); da.Fill(this.dsMonitorRecord); 阅读全文

posted @ 2012-06-16 12:05 烟雨飘零 阅读(149) 评论(0) 推荐(0)

调用别的dll
摘要:using System.Reflection;ShowMainForm(Application.StartupPath + "\\MainForm.dll");private string dllPath = Application.StartupPath + “\\DLL\\”+”xx.dll”;private void ShowMainForm(string dllPath) { try { //唤起程序主界面 Assembly myAssembly = Assembly.LoadFi... 阅读全文

posted @ 2012-06-16 12:04 烟雨飘零 阅读(205) 评论(0) 推荐(0)

调用别的窗体
摘要:private void btnInput_Click(object sender, EventArgs e) { //唤起零件信息维护界面,并向其传入操作类型标识“0” //form_partsInfmMntn f1 = new form_partsInfmMntn(0, null, _currentLoginInfo.ConnInfo.ConnString); IS_PartsInfmMntn f1 = new IS_PartsInfmMntn(0, null, _currentLoginInfo); ... 阅读全文

posted @ 2012-06-16 12:04 烟雨飘零 阅读(139) 评论(0) 推荐(0)

重复性输入检测
摘要:1 DataRow[] foundRowDept = this.dtbDept.Select("dept_name ='" + cboDept.Text + "'");2 DataRow[] foundRowSubsidiary = this.dtbSubsidiary.Select("subsidiary_name ='" + cboSubsidiary.Text + "'");3 DataRow[] foundRowRoleInfm = this.dtbRoleI... 阅读全文

posted @ 2012-06-16 12:03 烟雨飘零 阅读(247) 评论(0) 推荐(0)

模糊查询实现
摘要:Datatable dv=null;dv = dtbProductInfo.Clone(); DataRow[] temp = dtbProductInfo.Select("product_figure like '*" + txtProduct.Text.Trim() + "*'"); dv.Rows.Clear(); for (int i = 0; i < temp.Length; i++) dv.ImportRow(temp[i]); this.dgvProductInf... 阅读全文

posted @ 2012-06-16 12:02 烟雨飘零 阅读(155) 评论(0) 推荐(0)

文本框限数字输入
摘要:private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (!char.IsDigit(e.KeyChar)) { MessageBox.Show("只能输入数字"); e.Handled = true;//文本框不接受不正确的输入 } } private void textBox2_KeyPress(object sender, KeyPressEventArgs e){ ... 阅读全文

posted @ 2012-06-16 12:01 烟雨飘零 阅读(211) 评论(0) 推荐(0)

dataGridView 窗体右键获取事件
摘要:privatevoid dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) { if (e.Button == MouseButtons.Right) { if (e.RowIndex >=0) { dataGridView1.ClearSelection(); dataGridView1.Rows[e... 阅读全文

posted @ 2012-06-16 11:23 烟雨飘零 阅读(729) 评论(0) 推荐(0)

【转】vs2008安装部署工程制作教程
摘要:http://www.cnblogs.com/soief/archive/2009/06/09/1499322.html 阅读全文

posted @ 2012-02-26 10:26 烟雨飘零 阅读(261) 评论(0) 推荐(0)

【转】 vs2008 用文件部署生成的exe安装包
摘要:1 新建安装部署项目打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定。2 安装向导关闭后打开安装向导,点击下一步,或者直接点击完成。3 开始制作安装向导完成后即可进入项目文件夹:双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来。然后右击你的文件,创建快捷方式,然后把快捷方式分别复制或剪切到左边的"用户的'程序'菜单"和"用户桌面"中。这样安装程序安装完成后会在 "开始-&g 阅读全文

posted @ 2012-02-26 10:13 烟雨飘零 阅读(3902) 评论(0) 推荐(0)

【转】VS2008制作打包程序将安装路径写入注册表
摘要:安装打包程式右键*视图->编辑器->注册表: HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE\Software\[Manufacturer]\ //可自定义*新建->字符串: (Name)Location - (Value)[TARGETDIR] //TARGETDIR表示自定义安装路径的提取 阅读全文

posted @ 2012-02-26 10:11 烟雨飘零 阅读(3344) 评论(0) 推荐(1)

【转】vs2008安装部署程序时如何设置程序开机启动
摘要:创建一个基于 Windows 的应用程序1. 在“文件”菜单上单击“新建项目”。2. 在“新建项目”对话框中,选择“项目类型”窗格中的“Visual Basic”,然后单击“模板”窗格中的“Windows 应用程序”。在“名称”框中键入“My Notepad”。3. 单击“确定”关闭对话框。4. 项目添加到“解决方案资源管理器”中,并且“Windows 窗体设计器”打开。5. 在“工具箱”中选择“所有 Windows 窗体”选项卡,然后将一个 Button 控件拖到窗体中。6. 双击 Button 控件为该按钮添加事件处理程序。在事件处理程序中添加下面的代码:7. Shell("No 阅读全文

posted @ 2012-02-26 10:08 烟雨飘零 阅读(1882) 评论(0) 推荐(0)

C# 中out 和 ref 关键字的区别
摘要:ref和out都对函数参数采用引用传递形式——不管是值类型参数还是引用类型参数,并且定义函数和调用函数时都必须显示声明该参数为ref/out形式。两者都可以使函数传回多个结果。两者区别:两种参数类型的设计思想不同,ref的目的在于将值类型参数当作引用型参数传递到函数,是函数的输入参数,并且在函数内部的任何改变也都将影响函数外部该参数的值;而out的目的在于获取函数的返回值,是输出参数,由函数内部计算得到的值再回传到函数外部,因此必须在函数内部对该参数赋值,这将冲掉函数外部的任何赋值,使得函数外部赋值毫无意义。表现为:1、out应该在函数体内初始化,这使得在外面初始化变得没意义。也就是说,out 阅读全文

posted @ 2012-02-11 11:47 烟雨飘零 阅读(303) 评论(0) 推荐(0)

【转】C#虚函数virtual
摘要:具体的检查的流程如下1、当调用一个对象的函数时,系统会直接去检查这个对象申明定义的类,即申明类,看所调用的函数是否为虚函数;2、如果不是虚函数,那么它就直接执行该函数。而如果有virtual关键字,也就是一个虚函数,那么这个时候它就不会立刻执行该函数了,而是转去检查对象的实例类。3、在这个实例类里,他会检查这个实例类的定义中是否有重新实现该虚函数(通过override关键字),如果是有,那么OK,它就不会再找了,而马上执行该实例类中的这个重新实现的函数。而如果没有的话,系统就会不停地往上找实例类的父类,并对父类重复刚才在实例类里的检查,直到找到第一个重载了该虚函数的父类为止,然后执行该父类里重 阅读全文

posted @ 2011-09-03 23:30 烟雨飘零 阅读(249) 评论(0) 推荐(0)

【转】卸载sql server2005/2008
摘要:这些天一直在折腾这个东西,估计卸了装,装了卸也装了10几20遍了吧,所以颇有心得啊!~~在网上找关于如何卸载SQL Server 2005的材料也不是很多的说,基本上按照他们说的还是不能解决我的问题,所以只能自己慢慢摸索了,渐渐的也摸索出来一点东西。这里是我卸载SQL server 2005的办法,用这还可以,大家如果碰到类似问题,不妨一试。因为我们是在Cluster环境下来安装SQL Server,所以不知道会不会和一般安装卸载不太一样的说,我自己觉得应该差别不是很大的说。1。首先要停止所有的SQL的服务,步骤如下:Control Panel > Administrative Tool 阅读全文

posted @ 2011-09-01 23:31 烟雨飘零 阅读(1072) 评论(0) 推荐(0)

【转】 C#技巧集
摘要:1、ArrayList --> ArrayArrayListlist=newArrayList();list.Add("aaa");list.Add("bbb");list.Add("ccc");string[]arrString=(string[])list.ToArray(typeof(string));2、Array --> ArrayListstring[]arrString={"aaa","bbb","ccc"};ArrayListlist=newArr 阅读全文

posted @ 2011-09-01 23:30 烟雨飘零 阅读(256) 评论(0) 推荐(0)

【转】字符串处理函数总结
摘要:在网上看到或平时工作中使用的字符串处理函数,现总结一下,如果大家有好的补充一下:1、是否为空:public static bool IsEmpty(this string input) { if (input == null || input.Trim().Length == 0) return true; return false; }2、加密:public static string MD5(this string input) { string returnValue = string.Empty; byte[] inputBytes = Encoding.UTF8.GetBytes(i 阅读全文

posted @ 2011-09-01 23:28 烟雨飘零 阅读(274) 评论(0) 推荐(0)

导航