欢迎光临
我们一直在努力

一个数据库操作类的实例(二.Provider类)-.NET教程,数据库应用

建站超值云服务器,限时71元/月

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
}
}
 

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 一个数据库操作类的实例(二.Provider类)-.NET教程,数据库应用
分享到: 更多 (0)

相关推荐

  • 暂无文章