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

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

2007-06-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:/// /// 内部保护的数据库连接类 /// protected abstract class Provider { //一个静态的连接接口; private static System.Data.IDbConnection conn; /// /// 构造方法,设为私有类型,是防止外部无效的引用;...
关键字:源代码 joybase dll com DB

///

/// 内部保护的数据库连接类

///

protected abstract class Provider

{

//一个静态的连接接口;

private static System.Data.IDbConnection conn;

///

/// 构造方法,设为私有类型,是防止外部无效的引用;

///

protected Provider()

{

System.Data.IDbCommand x=new System.Data.OleDb.OleDbCommand();

}

///

/// 返回数据库边接类型

///

public static DBType Type

{

get

{

return Provider.m_DBType;

}

set

{

Provider.m_DBType=value;

}

}

private static string m_ConnectionString;

private static string m_ConnectionStringSetName;

///

/// 数据库连接字符串设置名称

///

public static string ConnectionSetName

{

set

{

Provider.m_ConnectionStringSetName=value;

}

}

///

/// 数据库连接字符串

///

public static string ConnectionString

{

set

{

Provider.m_ConnectionString=value;

}

}

private static DBType m_DBType;

///

/// 获得数据库连接接口

///

/// 返回一个连接

public static System.Data.IDbConnection getConn()

{

string ConnStr="";

try{

//System.Threading.Thread.GetDomain().UnhandledException+=new UnhandledExceptionEventHandler(ThrowDBException);

if(Provider.m_ConnectionString==""||Provider.m_ConnectionString==null)

{

if(Provider.m_ConnectionStringSetName.Trim()=="")

{

ConnStr=System.Configuration.ConfigurationSettings.AppSettings["DataBase.ConnectionString"];

}

else

{

ConnStr=System.Configuration.ConfigurationSettings.AppSettings[Provider.m_ConnectionStringSetName];

}

}

else

{

ConnStr=Provider.m_ConnectionString;

}

if(ConnStr==null||ConnStr=="")

{

throw new JoyBaseDBException("连接字符串为空或者是null类型,请检查您的ConnectionString以及ConnectionSetName是否进行正确设置,或者阅读相关说明.");

}

//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) Provider.Type=DBType.SqlClient;

else Provider.Type=DBType.OleDB;

//throw new Exception("here");

if(m_DBType==DBType.SqlClient)

{

conn=new System.Data.SqlClient.SqlConnection(ConnStr);

}

else

{

conn=new System.Data.OleDb.OleDbConnection(ConnStr);

}

}

catch(Exception e)

{

string reason="(1)未设置数据库连接字符串,请重新检查连接字符串\r\n(2)目标数据库不存在,或者是没有启动数据库或者无法登录;\r\n(3)连接字符串设置不正确,请按照标准的连接方式来写。\r\n";

throw new JoyBaseDBException(e.Message,reason);

}

return conn;

}

}

}

责任编辑:admin
相关文章