你必须知道的ADO.NET(七) Wow!Command对象高级应用
摘要:摘要在上一篇文章《你必须知道的ADO.NET(六) 谈谈Command对象与数据检索》中,我详细讲解了Command对象的基础知识以及基本用法。作为ADO.NET中最具执行力的对象,Command对象实属变幻莫测。在本文中,我将与大家一起探讨Command对象的高级应用与技巧。目录异步执行命令请使用参数化查询获取插入行的ID总结1. 异步执行命令 在ADO.NET 2.0版本之前,执行Command对象命令时,需要等待命令完成才能执行其他操作。比如,执行ExcuteNonQuery()方法,应用程序将会保持 阻塞,直到数据操作成功完成或者异常终止以及连接超时。在ADO.NET 2.0版本引入异
阅读全文
posted @
2012-05-23 19:52
Arrow.Lu
你必须知道的ADO.NET(四) 品味Connection对象
摘要:摘要前几篇文章,我都没有详细讲解Data Provider核心对象,因为我希望在讲解这些对象之前,让大家对一些基础的概念有很好的认识。在上一篇文章《你必须知道的ADO.NET(三) 连接字符串,你小觑了吗》中, 我详细讲解了连接字符串,相信大家都和我一样意识到它的重要性了。如果说连接字符串是打开数据源大门的钥匙,那么我今天要讲解的则是如何用这把钥匙打开数 据源的大门。作为Data Provider的第一核心对象,Connection对象肩负起连接数据源的重任。下面就让我们好好认识这位重量级人物吧!目录理解Connection对象必须掌握的几个方法必须掌握的几个属性说说ConnectionSta
阅读全文
posted @
2012-05-23 19:51
Arrow.Lu
你必须知道的ADO.NET(五) 细说数据库连接池
摘要:题外话通过前几章的学习,不知道大家对ADO.NET有一定的了解了没有。撇开文章质量不讲,必须肯定的是,我是用心去写每一篇文章的。无论是是在排版上,还是在内容选取上我都花了不少心思。我希望通过本系列文章,无论是新手还是老手,在ADO.NET上都能有所收获。如果大家觉得有帮助,我希望能得到您的推荐和关注,让我知道您对我的肯定。如果大家觉得我写的不好,我也很乐意听取批评的意见,让我们一起进步。摘要今天我要讲的是数据库连接池。说实话,我表示鸭梨很大。因为相比其他章节来说,连接池相对来说难理解一点。我要用最通俗的语句给大家讲明白,讲透彻 却也不是一件很容易的事。但是,连接池又是非常重要的知识点,特别是在
阅读全文
posted @
2012-05-23 19:51
Arrow.Lu
你必须知道的ADO.NET(三) 连接字符串,你小觑了吗?
摘要:摘要 ADO.NET强大的优势在于对不同的数据源提供一致的访问。在上一篇文章《你必须知道的ADO.NET(二)了解.NET数据提供程序》中, 我们知道.NET对不同数据源,使用不同的数据提供程序,这使得我们可以更高效的访问相应的数据源。除了.NET数据提供程序外,我还得说说另外一位功 臣:连接字符串(Connection Strings),它也为ADO.NET在解决“不同”与“一致”的矛盾中,贡献出了非常重要的力量。目录什么是连接字符串?理解语法格式例举几种典型连接字符串如何构造连接字符串?在配置文件中存储连接字符串1. 什么是连接字符串? 我们已经知道,ADO.NET类库为不同的外部数据源提
阅读全文
posted @
2012-05-23 19:50
Arrow.Lu
你必须知道的ADO.NET(一) 初识ADO.NET
摘要:摘要作为.NET框架最重要的组件之一,ADO.NET扮演着应用程序与数据交互的重要的角色。本文将从宏观的角度来探讨ADO.NET,和大家一起了解ADO.NET来龙去脉以及ADO.NET的主要组成部分。目录什么是ADO.NET?理清ADO.NET与ADO的关系认识ADO.NET最核心的组成部分ADO.NET扩展1. 什么是ADO.NET? 简单的讲,ADO.NET是一组允许.NET开发人员使用标准的,结构化的,甚至无连接的方式与数据交互的技术。对于ADO.NET来说,可以处理数据源是多样的。可以是应用程序唯一使用的创建在内存中数据,也可以是与应用程序分离,存储在存储区域的数据(如文本文件、XML
阅读全文
posted @
2012-05-23 19:49
Arrow.Lu
你必须知道的ADO.NET(二)了解.NET数据提供程序
摘要:摘要 在上一篇文章《你必须知道的ADO.NET(一) 初识ADO.NET》中, 我们知道ADO.NET的两大核心组件分别是Data Provider和DataSet。如果说DataSet是ADO.NET的心脏,那么Data Provider绝对是ADO.NET的左臂右膀。Data Provider提供了访问外部数据数据源的可能性,而且外部的数据源是多样的。本文将详细说明.NET数据提供程序的作用以及如何访问不同的数据源。目录什么是.NET数据提供程序?.NET数据提供程序的核心对象其他重要的对象理解.NET数据提供程序选择合适的.NET数据提供程序1. 什么是.NET数据提供程序? .NET
阅读全文
posted @
2012-05-23 19:49
Arrow.Lu
在Visual Studio 2010中定义GDI+自定义控件——自定义控件介绍
摘要:这一系列文章中,我主要讨论如何由浅入深的创建自定义控件。首先,我们需要认识什么是控件,以及自定义控件的应用如何节省时间和金钱。第一篇中,我们将对.NET自定义控件有一个快速的认识,并在文章结束时创建一个具有一定功能的自定义控件。在开始创建你自己的控件之前,理解他们的架构是一个重要的先决条件。• 了解什么是自定义控件,以及他们为何如此有用。• 理解自定义控件的组成。• 使用其他控件和组件创建你的第一个自定义控件。什么是控件控 件是可重用的用户界面功能组件。在Windows的世界里,控件代表了用户与应用程序交互的方法。控件允许用户输入数据并且可以操作数据,从而使用户在应 用程序上执行某些操作,如输
阅读全文
posted @
2012-05-15 16:21
Arrow.Lu
DataTable添加列和行的方法
摘要:方法一: DataTable tblDatas = new DataTable("Datas"); DataColumn dc = null; //赋值给 dc,是便于对每一个datacolumn的操作 dc = tblDatas.Columns.Add("ID", Type.GetType("System.Int32")); dc.AutoIncrement = true;//自动增加 dc.AutoIncrementSeed = 1;//起始为1 dc.AutoIncrementStep = 1;//步长为1 dc.AllowDB
阅读全文
posted @
2012-05-04 14:16
Arrow.Lu
一步一步教你玩转.NET配置文件app.config
摘要:一步一步教你玩转.NET Framework的配置文件app.config 在一般的项目中,为了使你的代码更加灵活,更方便调整,减少不必要的hard code,我们都在config中添加许多配置信息,一般可以选择.NET自带的配置文件形式app.config或者web项目中的web.config来完成配置工作。.NET中提供了几个和配置有关的类来支持用完轻松的完成配置文件的读写设置:System.Configuration.ConfigurationSectionGroup一般和你项目中使用的Assambly保持1:1的对应关系,这样划分使得结构相对清晰,权责明确。当然你可以不使用它,这样一旦
阅读全文
posted @
2012-05-03 15:50
Arrow.Lu
App.config和配置文件的读写
摘要:主要用来读取数据库连接,当然也可以设置其他项,废话不多说看代码using System;using System.Collections.Generic;using System.Text;using System.Configuration;using System.Collections;using System.Xml;using System.Windows.Forms;namespace Windo{ class AppClass1 { // GetConfiguration#region GetConfiguration /**/ /// <summary> /// 取
阅读全文
posted @
2012-05-03 15:48
Arrow.Lu
用C#创建COM组件全过程
摘要:本文详细阐述如何用C#创建COM组件,并能用VC6.0等调用。并附有完整测试通过的代码。该功能总体看来很简单。可是我在第一次用C#做COM的时候,痛不欲生。因为很少有人写这类文章。而且就算有代码也是乱帖。根本是让人误入歧途。后来在C# help上面看一个老外写的文章 (上面有一个完整的SQL SERVER实例),才完成该功能。拿来分享。开发工具:VS2008VS2008命令提示符(呵呵,这个你应该可以找到在什么地方吧)附:本文适用任何VS系列工具。在用C#创建COM组件时,一定要记住以下几点:1:所要导出的类必须为公有;2:所有属性、方法也必须为公有;3:要导出的属性、方法必须用接口方式;如果
阅读全文
posted @
2012-05-03 15:08
Arrow.Lu
[转载]如果在BackgroundWorker运行过程中关闭窗体
摘要:在Windows Form应用中,BackgroundWorker 类允许您在单独的专用线程上运行操作。耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 似乎处于停止响应状态。如果您需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用 Backgroun
阅读全文
posted @
2012-01-21 23:01
Arrow.Lu
阅读(137)
推荐(0)
[转载].NET的资源并不限于.resx文件,你可以采用任意存储形式
摘要:为了构建一个轻量级的资源管理框架以满足简单的本地化(Localization)的需求,我试图直接对现有的Resource编程模型进行扩展。虽然最终没能满足我们的需求,但是这两天也算对.NET如何进行资源的存取进行了深入的学习,所以将我对此的认识通过博文的方式与诸位分享。在本篇文章中,我会通过自定义R
阅读全文
posted @
2012-01-21 22:45
Arrow.Lu
阅读(156)
推荐(0)
[转载]Office文档模型深入---Excel文档模型与开发实战
摘要:总序 之前的一个项目要求对学生的Office文件进行自动批改,通过检查题干要求的完成情况来评分。在网上没有找到这方面比较系统的资料,而且有些有的网友提供的方法还存在一些问题,希望我的整理能够抛砖引玉,帮助大家熟悉Office的文档模型。本系列主要调用微软提供的主互程序操作集(名字比较拗口,其实也就是各种接口和类,主要区别以VBA)来实现Office文档的自动化操作,对这些了解的越多越感到类库的给力,用MSDN上的话说,是可以完成想象到的任何任务。 虽然名字叫深入,但作者毕竟水平有限,不足的地方还请大家尽情拍砖头哈。而且本文只是努力在浩繁的类中提纲挈领,想要充分了解还是得去慢慢研读MSDN。..
阅读全文
posted @
2012-01-21 22:05
Arrow.Lu
阅读(654)
推荐(0)
[转载]c#中如何读取嵌入的资源
摘要:在项目中,我们有时希望一些特殊的文件,不希望用户直接看到,我们需要将文件放到项目中,但是如何读取这个文件呢?我们下面来介绍一下如何读取项目中的嵌入资源。选中要嵌入dll中的文件,右键属性。选择嵌入资源。读取的地方调用下面代码,就可以将文件读取。1234567Assembly asm = Assembly.Load("Demo");//文件所在的项目 Stream sm = asm.GetManifestResourceStream("Demo.123.txt");//文件的路径,程序集.路径.文件名 using (StreamReader sr = ne
阅读全文
posted @
2012-01-21 19:51
Arrow.Lu
阅读(876)
推荐(0)
[转载]ThreadPool(线程池)in .Net
摘要:在多线程的程序中,经常会出现两种情况。一种情况下,应用程序中的线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应;而另外一种情况则是线程平常都处于休眠状态,只是周期性地被唤醒。这里分析及介绍.Net Framework中ThreadPool class来对付第一种情况,相应地也会谈到QueueUserWorkItem方法和WaitCallback委托。而使用Timer(System.Threading.Timer or System.Windows.Forms.Timer)来对付第二种情况,可以参考《System.Threading.Timer类的TimerCallback
阅读全文
posted @
2012-01-21 19:37
Arrow.Lu
阅读(130)
推荐(0)
[转载]System.Threading.Timer类的TimerCallback 委托
摘要:System.Threading.Timer 是一个使用回调方法的计时器,而且由线程池线程服务,简单且对资源要求不高。只要在使用 Timer,就必须保留对它的引用。对于任何托管对象,如果没有对 Timer 的引用,计时器会被垃圾回收。即使 Timer 仍处在活动状态,也会被回收。当不再需要计时器时,请使用 Dispose 方法释放计时器持有的资源。使用 TimerCallback 委托指定希望 Timer 执行的方法。计时器委托在构造计时器时指定,并且不能更改。此方法不在创建计时器的线程中执行,而是在系统提供的线程池线程中执行。创建计时器时,可以指定在第一次执行方法之前等待的时间量(截止时间)
阅读全文
posted @
2012-01-21 19:36
Arrow.Lu
阅读(163)
推荐(0)
ArrayList的使用方法【转载】
摘要:1、什么是ArrayListArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:动态的增加和减少元素实现了ICollection和IList接口灵活的设置数组的大小2、如何使用ArrayList最简单的例子:ArrayListList=newArrayList();for(inti=0;i<10;i++)//给数组增加10个Int元素List.Add(i);//..程序做一些处理List.RemoveAt(5);//将第6个元素移除for(inti=0;i<3;i++)//再增加3个元素 List.Add(i+20);Int3
阅读全文
posted @
2012-01-21 19:23
Arrow.Lu
阅读(107)
推荐(0)
使用XML技术将DataGridView中的数据导出到Excel,速度很快
摘要:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.OleDb;using System.IO; public void exportToExcel(DataSet source, string fileName) { System.IO.StreamWriter excelDoc; excelDo
阅读全文
posted @
2012-01-21 19:13
Arrow.Lu
阅读(218)
推荐(0)
[转载]DataGridView的虚模式填充
摘要:系统中需要使用到了DataGridView控件来显示数据,采用了最简单和常用的逐行填充法,运行没问题,但是在大数据量的时候显示速度非常慢,考虑到系统使用场景中的数据量通常都在百万行以上,所以只能尝试使用虚模式(VirtualMode)来填充。查看了MSDN里的资料,发现使用虚模式好像挺简单的,只要将DataGridView的VirtualMode属性设置为true,然后完成CellValueNeeded事件的处理代码就行。如果需要编辑数据的话,还需要自己处理CellValuePushed事件。代码Code highlighting produced by Actipro CodeHighlig
阅读全文
posted @
2012-01-21 14:43
Arrow.Lu
阅读(421)
推荐(0)