繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> com.joybase.DB的源代码(1)

com.joybase.DB的源代码(1)

2007-06-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:using System; using System.Collections; using System.Data; using System.Globalization; using System.ComponentModel; using System.Drawing.Design; using System.Windows.Forms.Design; namespace com.jo...
关键字:源代码 joybase com DB

using System;

using System.Collections;

using System.Data;

using System.Globalization;

using System.ComponentModel;

using System.Drawing.Design;

using System.Windows.Forms.Design;

namespace com.joybase.DB

{

///

/// 程序集名称:com.joybase.DB.dll(开发版)

/// 版本号:1.4.0.0(for VS.NET正式版);

/// 开发人员::开心就好

///

///

/// 电子邮件:joy@china.com

/// 网站:http://www.joycode.com(2001/12/1开通)

/// 功能列表

/// 本程序集由开心就好开发,如果您在使用中遇到任何疑问,可以致信反馈,十分感谢,请在信件中给出使用的代码片段及出错的详细描述!

/// 数据库操作类,效果有:

/// 1.可以跨越任何ADO.NET支持的数据库;(已经支持,经过测试的数据有MS Access以及MS SQLServer2000,以及Oracle8i系列)

/// 2.可以执行存储过程及普通SQL语句;(已经支持)

/// 3.可以得到存储过程返回的值及出口参数;(已经支持)

/// 4.简单的可以达到分页效果;(DataSet已经支持,DataReader已支持)

/// 5.可以以DataSet、DataReader、DataTable以及无结果输出;

/// 6.事务批处理功能(暂不支持)

/// 7.日后将支持System.Data.ODBC驱动(暂不支持)

///

更新列表(1.3.0.1)

/// 1.增加了一个JoyBaseDBException异常类,用户可以自己捕捉异常

/// 2.JoyBaseDBException异常类的Reason属性可以查阅当前异常的错误原因

/// 3.更新了部分示例

/// 4.本升级是由“蓝”请求而特意打造,在此表示一并感谢;

///

更新列表(1.3.0.0)

/// 1.修改了原来的构造方法,加进了无参构造,去除了原来的单参构造方法;

/// 2.新增加两个属性,即ConnectionSetName,相当于原来的构造方法中的单一入参,即在Config文件中配置连接字符串的键名,以及ConnectionString,可以直接赋入数据库连接字符串,如果此键赋入,则将覆盖原来的ConnectionStringSetName;

/// 3.修改了原来的ExecuteDataTable的Bug;

/// 4.修改了上一版本的两个分页方法,将out型参数提取为属性;

/// 5.内部的一些其它小型Bug

///

更新列表(1.2.0.3)

/// 1.去除了原来的Execute方法,将其执行分解为多个方法;

/// 2.去除了ReturnType属性以及ResultType枚举类型。

/// 3.增加了ExecuteNoresult方法,返回值为纪录影响数;

/// 4.增加了ExecuteDataTable方法,返回一个System.Data.DataTable,该表的名称默认为“Table”

/// 5.增加了ExecuteDataReader方法,返回一个System.Data.IDataReader对象

/// 6.重载ExecuteDataReader方法,支持分页显示,参数列表为

/// ExecuteDataReader(int PageSize,int CurrentPage,out int PageCount,out int PageSize)

/// PageSize:每页显示的纪录数;

/// CurrentPage;需要返回的页面号;

/// PageCount:回参,返回页面总数;

/// PageSize:回参,返回纪录总数;

/// 7.增加了ExecuteDataSet方法,并且有四次重载,分别是

/// (1)ExecuteDataSet()

/// 返回一个System.Data.DataSet

/// (2)ExecuteDataSet(string TableName);

/// 入参为表的名称;

/// (3)ExecuteDataSet(string Tablename,int StartRecord,int MaxRecord);

/// 返回从第StartRecord条纪录开始数的总共MaxRecord条纪录。

/// (4)ExecuteDataSet(string TableName,int PageSize,int CurrentPage,out int PageCount,out int RecordCount)

/// 请参阅关于DataReader分页方法的叙述。

///

///

///

///

/// 注意:在运行示例之前,您必须满足以下条件:

  1. 请先在您的配置文件(如果是ASP.NET程序为Web.Config,如果是Win Form程序,则为App.Config文件,加上以下一句话:

    ///

    ///

    ///

    /// 请注意,这句话必须加在配置文件的根节点,即之下

  2. ///

  3. 您已经安装了微软的MSDE数据库,如果您没有安装,可以在您的VS.NET安装目录下查找到,如我安装在E盘,则MSDE的安装程序为E:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Samples\Setup\msde\instmsde.exe,另外,请保证您的MSDE已经启动,可以在命令行使用net start MSSQL$NetSDK 将其进行启动
  4. ///

  5. 以下示例仅是给出了MS SQL Server的桌面数据库的示例,在您有条件的情况下,您可以使用其它数据库来做试验,如果有任何问题,可以与我联系
  6. ///

/// 例一:执行查询操作,以DataReader返回结果集

///

/// //请注意,此处的"DSN"为您在配置文件中所给的键名,而不是值;

/// try

/// {

/// Command command=new Command();

/// command.ConnectionString="server=(local)\NetSDK;database=Northwind;Trusted_Connection=yes";

/// command.CommandText="select * from orders where orderid=@orderid";

/// //下面的orders对应于SQL语句中的字段名,同时,如果查询语句为存储过程,此处请插入相应的入参;

/// command.Parameters["orderid"]=10249;

/// System.Data.IDataReader dr=command.ExecuteDataReader();

/// }

/// catch(JoyBaseDBException e)

/// {

/// //根据下面的示例你可以自己制作自己的异常捕捉;

/// Console.WriteLine("错误信息为:"+e.Message);

/// Console.WriteLine("错误可能原因为:"+e.Reason);

/// }

///

///if(dr.read())

///{

/// //读取数据,按照您原来对DataReader的操作方法即可;

/// ...

/// }

/// else

/// {

/// //执行您的异常操作;

/// ...

///

/// }

/// dr.Close();

///

/// 例二:执行查询操作,并且返回DataSet对象:

///

/// Command command=new Command();

/// command.ConnectionSetName="DSN";

/// command.CommandText="select * from orders";

/// //下面我们分别返回几个DataSet对象

/// //第一种是带默认表名为DataSet为“Table”的DataSet

/// System.Data.DataSet ds1=command.ExecuteDataSet();

/// //然后再返回一个自定义表名为“TableName”的对象

/// System.Data.DataSet ds2=command.ExecuteDataSet("TableName");

/// //再返回一个DataSet,我们将限制结果集的返回,假设从第12个纪录开始,查询50个纪录出来

/// System.Data.DataSet ds3=command.ExecuteDataSet("TableName",12,50);

/// //同时,你如果乐意,还可以只返回一个DataTable

/// System.Data.DataTable table=command.Execute.DataTable();

/// //现在您可以执行数据绑定操作了,直接取它的defaultView即可

/// ...

///

/// 例三:执行分页查询,并且返回DataSet对象以及DataReader对象

///

/// Command command=new Command();

/// command.ConnectionSetName="DSN";

/// command.CommandText="select * from orders";

/// command.PageSize=30;

/// //此处您可以用变量替代,即可以达到动态分页的效果

/// int CurrentPage=1;

/// System.Data.DataSet ds=command.ExecuteDataSet("ordersTable",CurrentPage);

/// //执行绑定操作,这样DataList以及其它数据绑定控件均支持分页了(您还得做一些操作,如当前页面数不要大于页面总数也不要小于等于0等的判断)

/// ...

/// //下面输出DataReader

/// System.Data.IDataReader dr=command.ExecuteDataReader(CurrentPage);

/// int i=0;

/// while(dr.read())

/// {

/// //执行您需要的操作

/// ....

///

/// }

/// string showText="共有纪录"+command.RecordSet+"条,共有"+command.PageCount+"页,当前显示第"+CurrentPage+"页";

///

///

///

责任编辑:admin
相关文章