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

源代码

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
{
/// <summary>
/// <b>程序集名称:com.joybase.DB.dll(开发版)</b><br/>
/// 版本号:1.4.0.0(for VS.NET正式版);<br/>
/// 开发人员::开心就好<br/>
/// </summary>
/// <remarks>
/// <b>电子邮件:</b>joy@china.com<br/>
/// <b>网站:</b>http://www.joycode.com(2001/12/1开通)<br/>
/// 功能列表
/// 本程序集由<font color="red"><b>开心就好</b></font>开发,如果您在使用中遇到任何疑问,可以<a href="joy@china.com">致信反馈</a>,十分感谢,请在信件中给出使用的代码片段及出错的详细描述!<br/>
/// 数据库操作类,效果有:<br/>
/// 1.可以跨越任何ADO.NET支持的数据库;(已经支持,经过测试的数据有MS Access以及MS SQLServer2000,以及Oracle8i系列)<br/>
/// 2.可以执行存储过程及普通SQL语句;(已经支持)<br/>
/// 3.可以得到存储过程返回的值及出口参数;(已经支持)<br/>
/// 4.简单的可以达到分页效果;(DataSet已经支持,DataReader已支持)<br/>
/// 5.可以以DataSet、DataReader、DataTable以及无结果输出;<br/>
/// 6.事务批处理功能(暂不支持)<br/>
/// 7.日后将支持System.Data.ODBC驱动(暂不支持)<br/>
/// <div align="center"><b>更新列表(1.3.0.1)</b></div>
/// 1.增加了一个JoyBaseDBException异常类,用户可以自己捕捉异常<br/>
/// 2.JoyBaseDBException异常类的Reason属性可以查阅当前异常的错误原因<br/>
/// 3.更新了部分示例<br/>
/// 4.本升级是由“蓝”请求而特意打造,在此表示一并感谢;<br/>
/// <div align="center"><b>更新列表(1.3.0.0)</b></div><br/>
/// 1.修改了原来的构造方法,加进了无参构造,去除了原来的单参构造方法;<br/>
/// 2.新增加两个属性,即ConnectionSetName,相当于原来的构造方法中的单一入参,即在Config文件中配置连接字符串的键名,以及ConnectionString,可以直接赋入数据库连接字符串,如果此键赋入,则将覆盖原来的ConnectionStringSetName;<br/>
/// 3.修改了原来的ExecuteDataTable的Bug;<br/>
/// 4.修改了上一版本的两个分页方法,将out型参数提取为属性;<br/>
/// 5.内部的一些其它小型Bug
/// <div align="center"><b>更新列表(1.2.0.3)</b></div><br/>
/// 1.去除了原来的Execute方法,将其执行分解为多个方法;<br/>
/// 2.去除了ReturnType属性以及ResultType枚举类型。<br/>
/// 3.增加了ExecuteNoresult方法,返回值为纪录影响数;<br/>
/// 4.增加了ExecuteDataTable方法,返回一个System.Data.DataTable,该表的名称默认为“Table”<br/>
/// 5.增加了ExecuteDataReader方法,返回一个System.Data.IDataReader对象<br/>
/// 6.重载ExecuteDataReader方法,支持分页显示,参数列表为<br/>
/// ExecuteDataReader(int PageSize,int CurrentPage,out int PageCount,out int PageSize)<br/>
/// PageSize:每页显示的纪录数;<br/>
/// CurrentPage;需要返回的页面号;<br/>
/// PageCount:回参,返回页面总数;<br/>
/// PageSize:回参,返回纪录总数;<br/>
/// 7.增加了ExecuteDataSet方法,并且有四次重载,分别是<br/>
/// (1)ExecuteDataSet()<br/>
/// 返回一个System.Data.DataSet<br/>
/// (2)ExecuteDataSet(string TableName);<br/>
/// 入参为表的名称;<br/>
/// (3)ExecuteDataSet(string Tablename,int StartRecord,int MaxRecord);<br/>
/// 返回从第StartRecord条纪录开始数的总共MaxRecord条纪录。<br/>
/// (4)ExecuteDataSet(string TableName,int PageSize,int CurrentPage,out int PageCount,out int RecordCount)<br/>
/// 请参阅关于DataReader分页方法的叙述。<br/>
///
/// </remarks>
/// <example>
///
/// 注意:在运行示例之前,您必须满足以下条件:<ol><li>请先在您的配置文件(如果是ASP.NET程序为Web.Config,如果是Win Form程序,则为App.Config文件,加上以下一句话:
/// <appSettings><br/>
///     <add key="DSN" value="server=(local)\NetSDK;database=Northwind;Trusted_Connection=yes" /><br/>
/// </appSettings\><br/>
/// 请注意,这句话必须加在配置文件的根节点,即<configuration>之下</li>
/// <li>您已经安装了微软的MSDE数据库,如果您没有安装,可以在您的VS.NET安装目录下查找到,如我安装在E盘,则MSDE的安装程序为E:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Samples\Setup\msde\instmsde.exe,另外,请保证您的MSDE已经启动,可以在命令行使用net start MSSQL$NetSDK 将其进行启动</li>
/// <li>以下示例仅是给出了MS SQL Server的桌面数据库的示例,在您有条件的情况下,您可以使用其它数据库来做试验,如果有任何问题,可以与我联系</li>
/// </ol>
/// <b>例一:执行查询操作,以DataReader返回结果集</b><br/>
/// <code>
/// //请注意,此处的"DSN"为您在配置文件中所给的键名,而不是值;<br/>
/// try<br/>
/// {<br/>
///     Command command=new Command();<br/>
///     command.ConnectionString="server=(local)\NetSDK;database=Northwind;Trusted_Connection=yes";<br/>
///     command.CommandText="select * from orders where orderid=@orderid";<br/(orderid=@orderid";<br/)>
///      //下面的orders对应于SQL语句中的字段名,同时,如果查询语句为存储过程,此处请插入相应的入参;<br/>
///     command.Parameters["orderid"]=10249;<br/>
///      System.Data.IDataReader dr=command.ExecuteDataReader();<br/>
/// }<br/>
/// catch(JoyBaseDBException e)<br/>
/// {<br/>
///     //根据下面的示例你可以自己制作自己的异常捕捉;<br/>
///     Console.WriteLine("错误信息为:"+e.Message);<br/>
///     Console.WriteLine("错误可能原因为:"+e.Reason);<br/>
/// }<br/>
///
///if(dr.read())<br/>
///{<br/>
///   //读取数据,按照您原来对DataReader的操作方法即可;<br/>
///    ...<br/>
/// }<br/>
/// else<br/>
/// {<br/>
///      //执行您的异常操作;<br/>
///      ...<br/>
/// <br/>
/// }<br/>
/// dr.Close();<br/>
/// </code>
/// <b>例二:执行查询操作,并且返回DataSet对象:</b><br/>
/// <code>
/// Command command=new Command();<br/>
/// command.ConnectionSetName="DSN";<br/>
/// command.CommandText="select * from orders";<br/>
/// //下面我们分别返回几个DataSet对象<br/>
/// //第一种是带默认表名为DataSet为“Table”的DataSet<br/>
/// System.Data.DataSet ds1=command.ExecuteDataSet();<br/>
/// //然后再返回一个自定义表名为“TableName”的对象<br/>
/// System.Data.DataSet ds2=command.ExecuteDataSet("TableName");<br/>
/// //再返回一个DataSet,我们将限制结果集的返回,假设从第12个纪录开始,查询50个纪录出来<br/>
/// System.Data.DataSet ds3=command.ExecuteDataSet("TableName",12,50);<br/>
/// //同时,你如果乐意,还可以只返回一个DataTable<br/>
/// System.Data.DataTable table=command.Execute.DataTable();<br/>
/// //现在您可以执行数据绑定操作了,直接取它的defaultView即可<br/>
/// ...<br/>
/// </code>
/// <b>例三:执行分页查询,并且返回DataSet对象以及DataReader对象</b><br/>
/// <code>
/// Command command=new Command();<br/>
/// command.ConnectionSetName="DSN";<br/>
/// command.CommandText="select * from orders";<br/>
/// command.PageSize=30;<br/>
/// //此处您可以用变量替代,即可以达到动态分页的效果<br/>
/// int CurrentPage=1;<br/>
/// System.Data.DataSet ds=command.ExecuteDataSet("ordersTable",CurrentPage);<br/>
/// //执行绑定操作,这样DataList以及其它数据绑定控件均支持分页了(您还得做一些操作,如当前页面数不要大于页面总数也不要小于等于0等的判断)<br/>
/// ...<br/>
/// //下面输出DataReader<br/>
/// System.Data.IDataReader dr=command.ExecuteDataReader(CurrentPage);<br/>
/// int i=0;<br/>
/// while(dr.read())<br/>
/// {<br/>
///     //执行您需要的操作<br/>
///     ....<br/>
///
/// }<br/>
/// string showText="共有纪录"+command.RecordSet+"条,共有"+command.PageCount+"页,当前显示第"+CurrentPage+"页";<br/>
/// <br/>
/// </code>
/// </example>

时间: 2024-11-01 22:46:58

com.joybase.DB的源代码(1)的相关文章

com.joybase.DB.dll源代码(5)

源代码  /// <summary> /// 枚举类型,即一个数据库连接类型的枚举 /// </summary> public enum DBType {  /// <summary>  /// SQL方式连接  /// </summary>  SqlClient=0,  /// <summary>  /// OLEDB方式连接  /// </summary>  OleDB=1 } /// <summary> /// 本程

com.joybase.DB.dll源代码(2)

源代码   public class Command {  //private DBParameters m_Parameters;  /// <summary>  /// 数据库命令,System.Data.IDbCommand接口类型  /// </summary>  private System.Data.IDbCommand m_command;  /// <summary>  /// 内部参数,每页的纪录数  /// </summary>  pri

com.joybase.DB.dll源代码(4)

源代码 /// <summary>  /// 内部保护的数据库连接类  /// </summary>  protected abstract class Provider  {   //一个静态的连接接口;   private static System.Data.IDbConnection conn;   /// <summary>   /// 构造方法,设为私有类型,是防止外部无效的引用;   /// </summary>   protected Pro

一个数据库操作类的实例(二.Provider类)

数据|数据库 using System;namespace com.joybase.DB{ /// <summary> /// 数据库连接提供类 /// </summary> public class Provider {  //一个静态的连接接口;  private static System.Data.IDbConnection conn;  /// <summary>  /// 构造方法,设为私有类型,是防止外部无效的引用;  /// </summary&g

一个数据库操作类的实例(一.Command类部分)

command|数据|数据库 using System;namespace com.joybase.DB{ /// <summary> /// 数据库操作类,通过这一个类的对外接口,可以获得以下特性: /// 1.不必区分数据库类型,而去考虑是使用System.Data.SqlClient实现,或者使用System.Data.OleDB来实现; /// 2.可以将SQL语句进行模式化,比如输入"select * from tablename where username=? orde

VS.NET RC5 EA版中所带Visio的UML能力测试报告

1.从静态结构图中生成C#工程应该是相当不错,可以直接生成,甚至可以选择所生成工程的类型及名称等等,命名空间的处理类似于Java,会分成多层目录,比如com.joybase.DB,真正的文件会在[Folder]\com\joybase\DB下面.但好象生不成类似于属性(get\set)这样的代码.而且建议在设计UML图时不要使用中文名.2.从C#工程生成静态结构图一团糟呀,你编译好好的C#工程反向为静态结构图,则会出现很多语法错误,比如接口不能做为返回值或者参数等等,让人感觉无所适从.如果有兴趣

自定义控件的使用例子一

控件 using System;using com.joybase.DB;using com.oztime.WorkShop.CodeBase;namespace com.oztime.WorkShop.CodeBase.DB{    /// <summary>    /// Summary description for DBUser.    /// </summary>    public class DBUser:User    {        private int m_

工具软件-db规范检查工具源代码

问题描述 db规范检查工具源代码 如建表脚本没有注释,不符合规范内容,而通过工具则可以判断出是否规范,求! 解决方案 http://wenku.baidu.com/link?url=7tDmBX9PApWVcJtgW2yI4ZLc6ngJBWsipS0Kyb-vcwN1yxVFErV3N1bvqpZa5YWmmhZ_W3iA5Tr0f_FqZpmEt5cuL-7aRlhtqtLQmdGBw-3

WEB追捕 PHP版 源代码

web|源代码 <?php /********************************************************************** * IP 来源追踪 Ver 1.1a * 作者 耙子 pazee@21cn.com http://www.fogsun.com * 2002/08/10 * * 程序中的数据库来自<追捕>,请把追捕中wry.dll 拷贝到函数当前目录. * 追捕的数据库是个的dbf文件,只不过它的扩展名字变成了dll. * 2000年