C#实现的基于单件模式的ADO.NET数据库
2008-07-02 15:37
417 查看
C#实现的基于单件模式的ADO.NET数据库公共连接组件代码如下:
C#实现的基于单件模式的ADO.NET数据库公共连接组件代码如下:
namespace Utilities.Common
{
public class DataConnection
{
private static SqlConnection _conn = null;
private string _connString;
private static object _classlock = typeof(DataConnection);
private static DataConnection _dc;
private static bool instance_flag=false;
private DataConnection() //定义私有构造函数防止用户生成实例
{
_connString = getConnString();
}
private string getConnString()
{
XmlDocument doc = new XmlDocument();
doc.Load("conn.xml"); //数据库连接设置的XML文件
string returnval = doc.DocumentElement.ChildNodes[0].FirstChild.Value;
doc = null;
return returnval;
}
public static DataConnection CreateConn() //静态类对外生成实例的接口
{
lock(_classlock) //生成实例前加锁,保证只生成一个连接实例
{
if(!instance_flag)
{
_dc = new DataConnection();
}
}
return _dc;
}
public SqlConnection Open()
{
if(_conn==null)
{
_conn = new SqlConnection(_connString);
_conn.Open();
}
return _conn;
}
public void Close()
{
if(_conn.State == System.Data.ConnectionState.Open)
{
_conn.Close();
_conn = null;
}
}
}
}
conn.XML文件的格式如下:
Server=(local);uid=sa;pwd=;database=pubs
将名为DataConnection的组件经编译生成DLL文件后,就可以在其他项目中引用此组件,只要按conn.XML文件的约定建立好数据库的连接字符串,在应用程序中通过调用该组件的Open()方法就可以获取连接到指定数据库的连接。在应用程序中使用该组件的示例代码如下:
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("select * from jobs",
Utilities.Common.DataConnection.CreateConn().Open());
da.Fill(ds);
C#实现的基于单件模式的ADO.NET数据库公共连接组件代码如下:
namespace Utilities.Common
{
public class DataConnection
{
private static SqlConnection _conn = null;
private string _connString;
private static object _classlock = typeof(DataConnection);
private static DataConnection _dc;
private static bool instance_flag=false;
private DataConnection() //定义私有构造函数防止用户生成实例
{
_connString = getConnString();
}
private string getConnString()
{
XmlDocument doc = new XmlDocument();
doc.Load("conn.xml"); //数据库连接设置的XML文件
string returnval = doc.DocumentElement.ChildNodes[0].FirstChild.Value;
doc = null;
return returnval;
}
public static DataConnection CreateConn() //静态类对外生成实例的接口
{
lock(_classlock) //生成实例前加锁,保证只生成一个连接实例
{
if(!instance_flag)
{
_dc = new DataConnection();
}
}
return _dc;
}
public SqlConnection Open()
{
if(_conn==null)
{
_conn = new SqlConnection(_connString);
_conn.Open();
}
return _conn;
}
public void Close()
{
if(_conn.State == System.Data.ConnectionState.Open)
{
_conn.Close();
_conn = null;
}
}
}
}
conn.XML文件的格式如下:
Server=(local);uid=sa;pwd=;database=pubs
将名为DataConnection的组件经编译生成DLL文件后,就可以在其他项目中引用此组件,只要按conn.XML文件的约定建立好数据库的连接字符串,在应用程序中通过调用该组件的Open()方法就可以获取连接到指定数据库的连接。在应用程序中使用该组件的示例代码如下:
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("select * from jobs",
Utilities.Common.DataConnection.CreateConn().Open());
da.Fill(ds);
相关文章推荐
- 设计模式--基于C#的工厂化实现及扩展
- 【现场直播】博客园征途系列,《设计模式——基于C#的工程化实现及扩展》封面火热出炉
- 设计模式-基于C#的工程化实现及扩展 (目录)
- 【出版直播】博客园征途系列,《设计模式——基于C#的工程化实现及扩展》定价修改
- 《设计模式--基于C#的工程化实现及扩展》 Security Design Pattern 系列 4 角色模式(Role Pattern)
- 设计模式基于C#的工程化实现及扩展
- 《设计模式--基于C#的工程化实现及扩展》 Security Design Pattern 系列 4 角色模式(Role Pattern)
- 【出版直播】博客园征途系列,《设计模式--基于C#的工程化实现及扩展》专题上线
- 《设计模式——基于C#的工程化实现及扩展》 Security Design Pattern 系列 4 角色模式(Role Pattern)
- 基于Actor模式的c#网络游戏服务器的实现和Unity游戏客户端的连接
- 《设计模式--基于C#的工程化实现及扩展》 Security Design Pattern 系列 3 检查点模式(Check Point)
- 《设计模式--基于C#的工程化实现及扩展》 Security Design Pattern 系列 3 检查点模式(Check Point)
- 《设计模式——基于C#的工程化实现及扩展》示例说明
- 重新研读C#语言——《设计模式—基于C#的工程化实现及扩展》
- 《设计模式 基于C#的工程化实现及扩展》 - 书摘精要
- ISingletonDisplayer 单件模式显示器C#实现
- C#实现单件模式的三种常用方法
- 《设计模式:基于C#的工程化实现及扩展》学习笔记--目录
- 关于《设计模式——基于C#的工程化实现》勘误的内容。感谢您对这本书的关心和支持
- 【出版直播】博客园征途系列,《设计模式——基于C#的工程化实现及扩展》书签制作完成