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);