随笔分类 - .NET学习笔记
VS用正则表达式统计代码行数
摘要:利用VS的查找功能和正则表达式统计代码行数:按CTRL+SHIFT+F (Find in files)勾选 正则表达式然后输入搜索内容:^:b*[^:b#/]+.*$#开头和/开头或者空行都不计入代码量。如果需要只统计代码文件的代码量,可以选择查找文件的类型,比如什么*.xml, *.resx….可以不检查,只查*.cs,*.c,*.h…搜索出来以后最后一行就是代码行数了。最后返回的结果:第一个就是要统计的行数
阅读全文
VS中提示:未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
摘要:今天运行项目,提示“未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。”的异常信息。在网上找了查了一些原因:http://www.cnblogs.com/muzihai1988/archive/2011/05/04/2036502.html原因分析:强类型的DataTable和SQL语句查询出的结果不匹配。 简单说就是强类型的DataTable比SQL语句查询出来的结果集要多一些数据列或这属性不对应。针对所提示的异常信息检查了所用表的唯一、非空、外键约束,并未发现异常情况。因此上网查询了有关的资料。所提供的方法有以下几种:DataTable中的字段属性与表中的字段属性不一致,导致了未
阅读全文
C# winform 右下角弹出窗口结果
摘要:using System.Runtime.InteropServices;[DllImport("user32")]private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);//下面是可用的常量,按照不合的动画结果声明本身须要的private const int AW_HOR_POSITIVE = 0 x0001;//自左向右显示窗口,该标记可以在迁移转变动画和滑动动画中应用。应用AW_CENTER标记时忽视该标记private const int AW_HOR_NEGATI
阅读全文
实例分析如何精确C#日期格式到毫秒,DateTime调用
摘要:有时候我们要对时间进行转换,达到不同的显示效果默认格式为:2009-6-24 14:33:34如果要换成成200906,06-2009,2009-6-24或更多的该怎么办呢我们要用到:DateTime.ToString的方法(String, IFormatProvider)using System;using System.Globalization;String format="D";DateTime date=DataTime,Now;Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInf
阅读全文
.NET 安装和部署(Installer) 如何卸载上一个版本
摘要:前言当使用.NET“安装项目”打包的安装文件,再次安装的时候会弹出如下提示,这个时候会让我们很郁闷,怎样才能自动卸载上一个安装的版本呢?方法很简单,只需简单的两个操作步骤即可解决。操作步骤主要由RemovePreviousVersions属性和ProductCode值来决定。MSDN上是这样说的“安装程序检查“UpgradeCode”和“ProductCode”属性,以确定是否应移除早期版本。新旧两种版本的 UpgradeCode 必须相同;ProductCode 必须不同。” RemovePreviousVersions 属性在“部署项目属性”当中,设置RemovePreviousVersi
阅读全文
分享:c#和javascript函数的相互调用(ObjectForScripting 的类必须对 COM 可见。请确认该对象是公共的,或考虑向您的类添加 ComVisible 属性。)
摘要:在webBrowser使用过程中为了C#和JS通讯,webBrowser必须设置ObjectForScripting的属性,它是一个object,这个object可以提供给webBrowser控件载入的网页上的script访问。 在设置过webBrowser控件的ObjectForScripting属性后,还需要设置应用程序对com可见,不然会抛出一个异常(ObjectForScripting 的类必须对 COM 可见。请确认该对象是公共的,或考虑向您的类添加 ComVisible 属性。),可做如下设置:[System.Runtime.InteropServices.ComVisible(.
阅读全文
C#中判断网络连接的状态
摘要:有时我们要不停的判断网络的连接状态,比如服务器网络连接是否正常等,下面就简单介绍我的判断方法,各位有更好的方法欢迎分享。代码就不解释了,一看就明白了。运行效果:代码:using System;using System.Collections.Generic;using System.Text;using System.Net.NetworkInformation;namespace ConsoleApplication1{ class Program { public static void Main(string[] args) { ...
阅读全文
C#实现Winform自定义半透明遮罩层
摘要:在网页中通过div+css实现半透明效果不难,今天我们看看一种在winfrom中实现的方法。
自定义遮罩层控件的源码。
OpaqueCommand的方法:ShowOpaqueLayer(显示遮罩层)和HideOpaqueLayer(隐藏遮罩层)。
源码下载:自定义半透明遮罩层-源码.rar
阅读全文
C# WinForm 慎用 override CreateParams 来重载窗体的一些特性
摘要:窗体和控件的属性CreateParams(这真的是一个属性)很神奇,因为通过它你能够很方便的控制窗体或控件诸如边框、最大化最小化关闭按钮的隐藏、窗体的模式化弹窗模式等的一些特性。虽然,CreateParams有者如此巨大的潜力,但是在使用时要相当慎重,如果你不了解CreateParams这个属性的话,反而会是你在编写其他代码的时候非常疑惑。引用MSDN中对CreateParams的说明: 在你开发的重载控件中不要重写这个属性,通过这个属性控制控件的某些风格。只有在你封装Windows控件或者想实现某些WinForm没有提供的风格(比如Layered Window)控制的时候再使用这个属性。更多
阅读全文
C#中抽象类和接口的区别(转)
摘要:一、抽象类:抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。二、接口:接口是引用类型的,类似于类,和抽象类的相似之处有三点:1、不能实例化;2、包含未实现的方法声明;3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员);另外,接口有如下特性:接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为
阅读全文
(分享)C# 绘制统计图(柱状图, 折线图, 扇形图)
摘要:C# 绘制统计图(柱状图, 折线图, 扇形图) http://www.cnblogs.com/ziyiFly/archive/2008/09/24/1297841.html
阅读全文
C# 设置DateTime类型的变量值等于Null
摘要:做一个项目时,有个日期字段客户可输入可不输入值,直接把DateTime=Null时会出错,提示错误:无法将 NULL 转换成"System.DateTime",因为它是一种值类型在网上查看下相关资料后,找到处理办法:Nullable<DateTime> now = DateTime.Now;Nullable<DateTime> now = null;当然也可以缩写:DateTime? now = DateTime.Now;DateTime? now = null;我们可以直接对now赋值,但实际上是给now.Value赋值。既然可以为空,就涉及到判断
阅读全文
RDLC报表中浮点型设置精度-设置小数位位数
摘要:1.Round()函数这个函数的参数必须是浮点型的,因此必须先转换格式,如果为空的话转换就会出错。而且当该列为空时候,会显示0.00。这样不好看。2.FormatNumber()函数这个函数格式化出来的是123,456,567.00 。出来的数据会加上“,”。也不好看。以上两种函数都是结合表达式,和字段绑定。例如:=FormatNumber(Sum(CDbl(Fields!Usage.Value)))=Round(Sum(CDbl(Fields!Usage.Value)))3. 设置RDLC文本框属性第三种方式是我推荐的很好用如上图 选择文本框属性 ---格式 ---数字 选择一种格式,如上显
阅读全文
C# WINFORM判断程序是否运行,且只能运行一个实例
摘要:判断程序是否已经运行,使程序只能运行一个实例有很多方法,下面记录两种,方法1:线程互斥 static class Program { private static System.Threading.Mutex mutex; /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); ...
阅读全文
RDLC报表改动的注意事项之增加字段和参数
摘要:用RDLC做报表时,在数据源中增加了一个字段,相应的报表上添加了一个文本框,将其value值设置为那个字段后,编译时总是报错:报表项表达式只能引用当前数据集作用域内的字段或指定数据集作用域内的字段(如果该表达式包含在聚合函数中)。后来发现要将报表文件打开,那里面少了相应的节点: <Field Name="****"> <DataField>****</DataField> <rd:TypeName>System.String</rd:TypeName> </Field>添加参数时也要添加相应的节点: &
阅读全文
怪异的CheckedListBox数据绑定
摘要:今天用到了CheckedListBox,就见到总结一下常用的知识。数据绑定 CheckedListBox应该是由ListBox扩展而来的,但在使用的时候,可能会发现——它不支持DataSource属性,不能像ListBox那样指定其数据源为一个DataTable。
事实上,CheckedListBox像ListBox一样有DataSource属性,DisplayMember和ValueMemeber属性也都是有的,只是IntelliSense不能将其智能感知出来。
如何获取checkedListBox1选中项的DisplayMember和ValueMember
阅读全文
C#遍历ComboBox
摘要:C#遍历ComboBox的内容:一:for (int i = 0; i < comboBox1.Items.Count; i++){ MessageBox.Show(comboBox1.GetItemText(comboBox1.Items[i]));}二:foreach (System.Data.DataRowView dr in comboBox1.Items){ string id = dr["student_id"].ToString(); string nane = dr["student_name"].ToString();}//for
阅读全文
多个DataTable的合并成一个新表
摘要:有时我们知道了两个DataTable1和DataTable2,我们希望将它们合并为一个新的DataTable(下面的例子中命名为了newDataTable),这就分为两种情况:DataTable1和DataTable2结构相同、DataTable1和DataTable2结构不同,下面分别介绍怎么进行合并。
一、DataTable1和DataTable2结构相同的情况,结构相同我们只需要把两者的数据罗列到一块就可以了
二、DataTable1和DataTable2结构不同相同的情况,我们可以先向新表中添加DataTable1的数据,然后再向每行的后面添加添加DataTable2的数据,注意两者的行数不一定相同。
阅读全文
C#网络编程之Socket
摘要:Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务,其命名空间System.Net和 System.Net.Sockets包含丰富的类可以开发多种网络应用程序。.Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从socket套接字到普通的请求/响应,更重要的是,这种分层是可以扩展的,能够适应Internet不断扩展的需要。抛开ISO/OSI模型的7层构架,单从TCP/IP模型上的逻辑层面上看,.Net类可以视为包含3个
阅读全文
(分享)利用reportviewer与C#一步一步生成报表
摘要:关于编写报表,职场中的人相信都会有所感慨,一份整洁、优美的报表会为你在上司面前增色不少,甚至加薪 :) ——大家都喜欢加薪,对吧?在本文中,将向大家介绍怎样利用MS Reporting Services 2005来创建一份报表,并用一个C#小程序来生成它。 本文假定读者已对Visual Studio 2005 IDE有了初步的了解,并能用C#编写代码,懂不懂MS Reporting Services都对理解本文没有关系,当然了,之前写过类似的报表,将有助于你更快地上手。好了,卷起袖子,准备开始吧! 请看图1,这份报表有多复杂?猜猜它需要多少时间完成?就复杂而言,它只是一份简单的、从No...
阅读全文