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==nullconnstr=="")
{
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
}
}
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器