电脑教程中文网
首页  动态网站建设学习 程序  笑话  论坛 娱乐  交友 ADSL  峄城  成功者
中文名:电脑教程中文网,收集了大量的电脑教程! 编程技术文档 游戏开发 笑话站暂时关闭 设为首页
网页设计 HTML | Dreamweaver | CSS | Firework | FrontPage WEB开发 ASP | JSP | PHP | .NET | CGI | JS | VBS | XML | IIS6 | Apache | PWS
程序设计 Java | C++ |VC++ | C# | Delphi | VB | C语言 | 汇编 | Pascal | Perl 数据库 MSSQL | MySQL | Access | VF | Oracle | DB2 | SYBASE |
办公软件 Word | Excel | WPS | PowerPoint 动画平面 Photoshop | ACDSee | 3Dmax | Flash | Coreldraw |
操作系统 Windows 2000 | Windows XP | Windows 2003 | SCO Unix | Windows Vista | unix、Linux | 综合| 服务器 | 系统安全| 黑客技术
其  他 UltraDev | DOS | UML | PWS | Powerbuilder | 开发心得 | 设计理念 | 病毒库 | 其他 | LightTPD (分类排序给您带来不便请谅解)
推  荐: Java文档500篇》《ASP.NET与相关数据库技术高级指南》《TC图形函数详解》《C函数速查手册》《C语言编程宝典之一》《MFC深入浅出》《黑客零起点》《VC++ 编程指南》《JScript 用户指南》 《CSS教程宝典》《Microsoft Jet SQL 参考》《delphi技巧集合》《MySQL 4.1.0 中文参考手册》《MySQL中文手册
【导航】 您现在的位置 : 首页 - NET教程 - 《.NET与数据库篇》- 一个数据库操作类的实例(二.Provider类)

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

日期:2005-7-10 16:07:47    作者:佚名   人气:   来源:未知




using System;
namespace com.joybase.DB
{
/// <summary>
/// 数据库连接提供类
/// </summary>
public class Provider
{
  //一个静态的连接接口;
  private static System.Data.IDbConnection conn;
  /// <summary>
  /// 构造方法,设为私有类型,是防止外部无效的引用;
  /// </summary>
  protected Provider()
  {
   //
   // TODO: Add constructor logic here
   //
   System.Data.IDbCommand x=new System.Data.OleDb.OleDbCommand();
      
  }
//  /// <summary>
//  /// 数据库连接类型,即判断是System.Data.SqlClient类型或者是System.Data.OleDB类型的。
//  /// </summary>
//  private static DBType DataBaseType
//  {
//   get
//   {
//    //从配置文件当中读取数据库类型字符串
//    string m_DBType=System.Configuration.ConfigurationSettings.AppSettings["DataBase.Type"];
//    //如果未设置默认为System.Data.SqlClient类型的连接
//    if(m_DBType==null)
//    {
//     return DBType.SqlClient;
//    }
//    else
//    {
//     //如果为空或者为MSSQLServer2000,则使用System.Data.SqlClient类型的连接
//     if(m_DBType.Trim()==""||m_DBType.Trim().ToUpper()=="MSSQLSERVER2000"||m_DBType.Trim().ToUpper()=="MSSQLSERVER7")
//     {
//      return DBType.SqlClient;
//     }
//     //其它则返回System.Data.OleDB类型的连接
//     else
//     {
//      if(m_DBType.Trim().ToUpper()=="OLEDB")
//      {
//       return DBType.OleDB;
//      }
//     }
//
//    }
//    return DBType.OleDB;
//
//   }
//
//
//  }
  /// <summary>
  /// 重载getConn(string)方法,此时连接字符串的标签名将为“DataBase.ConnectionString”
  /// <seealso cref="getConn(string) "/>
  /// </summary>
  ///  <returns>返回一个连接</returns>
  public static System.Data.IDbConnection getConn()
  {
   return Provider.getConn("");
  }
  /// <summary>
  /// 获得数据库连接接口
  /// </summary>
  /// <param name="p_ConnStringSetName">一个在Config文件中设置连接字符串的标签名</param>
  /// <returns></returns>
  public static System.Data.IDbConnection getConn(string p_ConnStringSetName)
  {
   
//   if(conn==null)
//   {
    string ConnStr="";
    if(p_ConnStringSetName.Trim()=="")
    {
     ConnStr=System.Configuration.ConfigurationSettings.AppSettings["DataBase.ConnectionString"];
    }
    else
    {
     ConnStr=System.Configuration.ConfigurationSettings.AppSettings[p_ConnStringSetName];
    }
    if(ConnStr==null||ConnStr=="")
    {
     throw new Exception("Not find connection string!");
    }
    DBType m_DBType;//=Provider.DataBaseType;
    /*                              
     * 注释:我们对前面的编码进行了部分的修改,鉴于System.Data.SqlClient的连接
     * 字符串当中不可能出现"Provider"字样,所以我们根据是否有Provider字样来判断
     * 该连接是基于System.Data.SqlClient的或者System.Data.OleDB的。
     * 参考资料:
     * 可以将 ConnectionString 属性设置为单个单元。(不能为 SqlConnection 对象指定 Provider 属性。)
     * –或–
                 *
     * 可以设置单个属性(DataSource、Database、UserName 等等)。如果设置单个属性,则将为您生成连接字符串。
     * 注意   在连接字符串中存储用户名和密码有安全性设置的意味。有关详细信息,请参阅Introduction to ADO.NET Connection Design Tools。
                 *
     */
    if(ConnStr.ToLower().IndexOf("provider")==-1) m_DBType=DBType.SqlClient;
    else m_DBType=DBType.OleDB;
    try
    {
     if(m_DBType==DBType.SqlClient)
     {
      conn=new System.Data.SqlClient.SqlConnection(ConnStr);
     }
     else
     {
      conn=new System.Data.OleDb.OleDbConnection(ConnStr);
     }
    }
    catch
    {
     throw new Exception("Error to connect DB!");
    }
//   }
   //if(conn.State!=System.Data.ConnectionState.Closed) conn.Close();
   return conn;
   
  }
  
}
/// <summary>
/// 枚举类型,即一个数据库连接类型的枚举
/// </summary>
enum DBType
{
  SqlClient=0,
  OleDB=1
}
}

www.CLDE.net




网站首页 - 友情链接 - 公司简介 - 联系方式 - 广告投放 - 客户服务 - 错误报告 - 免责声明 - About us
CLDE.NET电脑教程中文网版权所有 未经许可禁止镜象和复制本站资料 MSN:CLDE_NET@hotmail.com
技术支持:CLDE.NET信息中心 鲁ICP备05039940号 友情链接QQ:784079(隐)