用C#實現(xiàn)的數(shù)據(jù)庫抽象工廠(二)
2024-07-21 02:19:45
供稿:網(wǎng)友
用c#實現(xiàn)的數(shù)據(jù)庫抽象工廠(二)
以下3個類分別是factory針對sqlserver專用連接、oledb連接和odbc連接時的具體實現(xiàn):
(3)sqlfactory.cs
using system;
using system.data;
using system.data.sqlclient;
using system.configuration;
namespace dbservice
{
/// <summary>
/// 針對sqlserver專用連接的工廠
/// </summary>
public class sqlfactory : abstractdbfactory
{
/// <summary>
/// 構造函數(shù)
/// </summary>
public sqlfactory()
{
}
/// <summary>
/// 建立默認connection對象
/// </summary>
/// <returns>connection對象</returns>
public idbconnection createconnection()
{
return new sqlconnection();
}
/// <summary>
/// 根據(jù)連接字符串建立connection對象
/// </summary>
/// <param name="strconn">連接字符串</param>
/// <returns>connection對象</returns>
public idbconnection createconnection(string strconn)
{
return new sqlconnection(strconn);
}
/// <summary>
/// 建立command對象
/// </summary>
/// <returns>command對象</returns>
public idbcommand createcommand()
{
return new sqlcommand();
}
/// <summary>
/// 建立dataadapter對象
/// </summary>
/// <returns>dataadapter對象</returns>
public idbdataadapter createdataadapter()
{
return new sqldataadapter();
}
/// <summary>
/// 根據(jù)connection建立transaction
/// </summary>
/// <param name="mydbconnection">connection對象</param>
/// <returns>transaction對象</returns>
public idbtransaction createtransaction(idbconnection mydbconnection)
{
return mydbconnection.begintransaction();
}
/// <summary>
/// 根據(jù)command建立datareader
/// </summary>
/// <param name="mydbcommand">command對象</param>
/// <returns>datareader對象</returns>
public idatareader createdatareader(idbcommand mydbcommand)
{
return mydbcommand.executereader();
}
/// <summary>
/// 獲得連接字符串
/// </summary>
/// <returns>連接字符串</returns>
public string getconnectionstring()
{
string strserver = configurationsettings.appsettings["sqlserverserver"];
string strdatabase = configurationsettings.appsettings["sqlserverdatabase"];
string struid = configurationsettings.appsettings["sqlserveruid"];
string strpwd = configurationsettings.appsettings["sqlserverpwd"];
string strconnectionstring = "server = " + strserver + "; database = " + strdatabase + "; uid = " + struid + "; pwd = " + strpwd + ";";
return strconnectionstring;
}
}
}
(4)oledbfactory.cs
using system;
using system.data;
using system.data.oledb;
using system.configuration;
namespace dbservice
{
/// <summary>
/// 針對oledb連接的工廠
/// </summary>
public class oledbfactory : abstractdbfactory
{
/// <summary>
/// 構造函數(shù)
/// </summary>
public oledbfactory()
{
}
/// <summary>
/// 建立默認connection對象
/// </summary>
/// <returns>connection對象</returns>
public idbconnection createconnection()
{
return new oledbconnection();
}
/// <summary>
/// 根據(jù)連接字符串建立connection對象
/// </summary>
/// <param name="strconn">連接字符串</param>
/// <returns>connection對象</returns>
public idbconnection createconnection(string strconn)
{
return new oledbconnection(strconn);
}
/// <summary>
/// 建立command對象
/// </summary>
/// <returns>command對象</returns>
public idbcommand createcommand()
{
return new oledbcommand();
}
/// <summary>
/// 建立dataadapter對象
/// </summary>
/// <returns>dataadapter對象</returns>
public idbdataadapter createdataadapter()
{
return new oledbdataadapter();
}
/// <summary>
/// 根據(jù)connection建立transaction
/// </summary>
/// <param name="mydbconnection">connection對象</param>
/// <returns>transaction對象</returns>
public idbtransaction createtransaction(idbconnection mydbconnection)
{
return mydbconnection.begintransaction();
}
/// <summary>
/// 根據(jù)command建立datareader
/// </summary>
/// <param name="mydbcommand">command對象</param>
/// <returns>datareader對象</returns>
public idatareader createdatareader(idbcommand mydbcommand)
{
return mydbcommand.executereader();
}
/// <summary>
/// 獲得連接字符串
/// </summary>
/// <returns>連接字符串</returns>
public string getconnectionstring()
{
string strprovider = configurationsettings.appsettings["oledbprovider"];
string strdatasource = configurationsettings.appsettings["oledbdatasource"];
string strconnectionstring = "provider = " + strprovider + ";data source = " + strdatasource + ";";
return strconnectionstring;
}
}
}
(5)odbcfactory.cs
using system;
using system.data;
using system.data.odbc;
using system.configuration;
namespace dbservice
{
/// <summary>
/// 針對odbc連接的工廠
/// </summary>
public class odbcfactory : abstractdbfactory
{
/// <summary>
/// 構造函數(shù)
/// </summary>
public odbcfactory()
{
}
/// <summary>
/// 建立默認connection對象
/// </summary>
/// <returns>connection對象</returns>
public idbconnection createconnection()
{
return new odbcconnection();
}
/// <summary>
/// 根據(jù)連接字符串建立connection對象
/// </summary>
/// <param name="strconn">連接字符串</param>
/// <returns>connection對象</returns>
public idbconnection createconnection(string strconn)
{
return new odbcconnection(strconn);
}
/// <summary>
/// 建立command對象
/// </summary>
/// <returns>command對象</returns>
public idbcommand createcommand()
{
return new odbccommand();
}
/// <summary>
/// 建立dataadapter對象
/// </summary>
/// <returns>dataadapter對象</returns>
public idbdataadapter createdataadapter()
{
return new odbcdataadapter();
}
/// <summary>
/// 根據(jù)connection建立transaction
/// </summary>
/// <param name="mydbconnection">connection對象</param>
/// <returns>transaction對象</returns>
public idbtransaction createtransaction(idbconnection mydbconnection)
{
return mydbconnection.begintransaction();
}
/// <summary>
/// 根據(jù)command建立datareader
/// </summary>
/// <param name="mydbcommand">command對象</param>
/// <returns>datareader對象</returns>
public idatareader createdatareader(idbcommand mydbcommand)
{
return mydbcommand.executereader();
}
/// <summary>
/// 獲得連接字符串
/// </summary>
/// <returns></returns>
public string getconnectionstring()
{
string strdriver = configurationsettings.appsettings["odbcdriver"];
string strdbq = configurationsettings.appsettings["odbcdbq"];
string strconnectionstring = "driver={" + strdriver + "}; dbq=" + strdbq + ";";
return strconnectionstring;
}
}
}
待續(xù)......