您的位置:首页 > 数据库

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

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐