随笔分类 - .NET技术
摘要:我们在开发当中有时要求同一个用户在同一时间只能登录一次,也就是如果一个用户已经登录了,在退出之前如果再次登录的话需要提示不能登录。 常见的处理方法是,在用户登录时,判断此用户是否已经在Application中存在,如果存在就提示,不存在的话就加到Application中(Application是所有Session共有的,整个web应用程序唯一的一个对象): string strUserId = txtUser.Text; ArrayList list = Application.Get("GLOBAL_USER_LIST") as ArrayList; if (list =
阅读全文
摘要:前些时间在做老师布置的一个CRM项目,其中项目里需要做一个日程相关提醒的功能,想一想如果是用Timer控件每隔一秒不停的执行轮询定时 时间列表的话,也不是一个很好的设计思路,至少效率不是很好,最后老师给我们提了一个MSDN上的时间比较算法,让我们自己研究,然后再运用到项目里去,随后就在MSDN上找到了具体这个算法实现,用起来还是比较的灵活,至少我认为是这样,下面是具体的实现: /// /// 比较两时间的在允许的范围内是否相等 /// /// 第一个时间 /// 设置的时间 /// 允许的范围(s) /// 循环的时间周期(s) /// True:相等 False:不相等 public ...
阅读全文
摘要:代码支持任意office格式需要安装office 2007 还有一个office2007的插件OfficeSaveAsPDFandXPS下载地址[url]http://www.microsoft.com/downloads/details.aspx?FamilyId=4D951911-3E7E-4AE6-B059-A2E79ED87041&displaylang=en[/url]这是一个微软官方出的office插件。安装好之后,打开VS,以VS2005为例新建windows应用程序项目添加以下com组件的引用Microsoft Word 12.0 Object LibraryMicro
阅读全文
摘要:面向连接的TCP“面向连接”就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。所以对于传送大文件,视频聊天,语音对话一般采用TCP连接,比较可靠。面向非连接的UDP协议“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。这与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境UDP协议
阅读全文
摘要:提纲: 1、什么是反射 2、命名空间与装配件的关系 3、运行期得到类型信息有什么用 4、如何使用反射获取类型 5、如何根据类型来动态创建对象 6、如何获取方法以及动态调用方法 7、动态创建委托 1、什么是反射 Reflection,中文翻译为反射。 这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型(class)’组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息,例如: Assembly类可以获得正在运行的装配件信息,也可以动态的加载装配件,以及在装配件中查找类型信息,...
阅读全文
摘要:Dragon 的 c# Invoke和BeginInvoke 区别Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线程上执行指定的委托。Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄所在线程上异步执行指定委托。以下为实际应用中碰到的问题,在主线程中启动一个线程,然后在这个线程中启动serviceForm,然而在线程启动后,往serviceForm发送指令,serviceForm.IsHandleCreated老是报serviceForm = null,无法执行指令,采用延时的办法可以解决此问题,但不是高效的办法
阅读全文
摘要:一、把DataTable插入数据库public static void DataTableToDB(){ string _strExcelFileName = @"D:/example.xls"; DataTable dtExcel = ExcelToDataTable(_strExcelFileName,"Sheet1"); for (int i = 0; i < dtExcel.Rows.Count; i++) { InsertDataToAccess(dtExcel.Rows[i][0].ToString(), float.Parse(dtE
阅读全文
摘要:异步调用其实就是对线程的一种应用,但异步调用在使用上更加灵活,而且功能更强大。此外,异步调用还有一个的优点就是调用的是线程池里的线程(c#开发的应用程序的线程池里默认的线程数是25,如果要求调用线程池里的线程,而池里面的线程都是在使用的状态下时,外部请求会被放到一个队列里进行排队,等池里有空闲的线程时请求才被执行),开发者不用担心如何管理池里面的线程,直接调用即可。 下面列出两种最常用的异步调用的用法一、没有回调函数的用法 定义委托: private delegate void Asynchronism(List list); //调用 private void simpleButton1_.
阅读全文
摘要:Api函数是构筑Windws应用程序的基石,每一种Windows应用程序开发工具,它提供的底层函数都间接或直接地调用了Windows API函数,同时为了实现功能扩展,一般也都提供了调用WindowsAPI函数的接口,也就是说具备调用动态连接库的能力。Visual C#和其它开发工具一样也能够调用动态链接库的API函数。.NET框架本身提供了这样一种服务,允许受管辖的代码调用动态链接库中实现的非受管辖函数,包括操作系统提供的Windows API函数。它能够定位和调用输出函数,根据需要,组织其各个参数(整型、字符串类型、数组、和结构等等)跨越互操作边界。 下面以C#为例简单介绍调用API的基本
阅读全文
摘要:一、如何创建自定义后缀名的文件(如 *.tmp)? 使用序列化将一个对象序列化成文件,使用 BinaryFormatter 类提供方法可以将文件序列 化为二进制文件存放。 注意:待序列化的类必须标示可序列化,方法是在 public class Test{}上方加标签 [System.Serializable] 通过上一步我们已经知道创建一个自定义扩展名文件的思路了,下面是具体的代码,包括两部分一个是如可保存文件,一个是如可加载文件(这个类文件附在程序里就能看效果了!!)-------------------------------------------------------------..
阅读全文
摘要:[C#正则表达式入门内容]什么是正则表达式涉及的基本的类正则表达式基础知识构建表达式基本方法编写一个检验程序参考资料[C#正则表达式入门正文]对于初学者看到类似“/w+@/w+/./w{1,3}”这样复杂没有规律的字符,就会莫名产生一种恐惧感。其实正则表达式和字符串(String)的使用同样非常简单。下面让我们逐步地走进正则表达式的世界!什么是正则表达式正则表达式是用来检验和操作字符串的强大工具。简单的理解正则表达式可以认为是一种特殊的验证字符串。正则表达式常见运用是验证用户输入信息格式,比如上面的那组“/w{1,}@/w{1,}/./w{1”,实际上就是验证邮件地址是否合法的;当然正则表达式
阅读全文

浙公网安备 33010602011771号