直播中
}
// /// <summary>
// /// 數(shù)據(jù)庫(kù)連接類型,即判斷是System.Data.SqlClient類型或者是System.Data.OleDB類型的。
// /// </summary>
// private static DBType DataBaseType
// {
// get
// {
// //從配置文件當(dāng)中讀取數(shù)據(jù)庫(kù)類型字符串
// string m_DBType=System.Configuration.ConfigurationSettings.AppSettings["DataBase.Type"];
// //如果未設(shè)置默認(rèn)為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)方法,此時(shí)連接字符串的標(biāo)簽名將為“DataBase.ConnectionString”
/// <seealso cref="getConn(string) "/>
/// </summary>
/// <returns>返回一個(gè)連接</returns>
public static System.Data.IDbConnection getConn()
{
return Provider.getConn("");
}
/// <summary>
/// 獲得數(shù)據(jù)庫(kù)連接接口
/// </summary>
/// <param name="p_ConnStringSetName">一個(gè)在Config文件中設(shè)置連接字符串的標(biāo)簽名</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;
/*
* 注釋:我們對(duì)前面的編碼進(jìn)行了部分的修改,鑒于System.Data.SqlClient的連接
* 字符串當(dāng)中不可能出現(xiàn)"Provider"字樣,所以我們根據(jù)是否有Provider字樣來判斷
* 該連接是基于System.Data.SqlClient的或者System.Data.OleDB的。
* 參考資料:
* 可以將 ConnectionString 屬性設(shè)置為單個(gè)單元。(不能為 SqlConnection 對(duì)象指定 Provider 屬性。)
* –或–
*
* 可以設(shè)置單個(gè)屬性(DataSource、Database、UserName 等等)。如果設(shè)置單個(gè)屬性,則將為您生成連接字符串。
* 注意 在連接字符串中存儲(chǔ)用戶名和密碼有安全性設(shè)置的意味。有關(guān)詳細(xì)信息,請(qǐng)參閱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>
/// 枚舉類型,即一個(gè)數(shù)據(jù)庫(kù)連接類型的枚舉
/// </summary>
enum DBType
{
SqlClient=0,
OleDB=1
}
}