类图 using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; namespace SinglePattern { class ConnectionItem { private SqlConnection conn; private string _Name; public ConnectionItem() { conn = new SqlConnection("Server=localhost//GhostBear ;Initial Catalog=MAMA;UID=sa;PWD=shayidao9788;"); conn.Open(); _Name = new Random().Next(1, 100).ToString(); } public string State { get { return conn.State.ToString(); } } public void Close() { conn.Close(); } public void Open() { if (conn.State != ConnectionState.Open) conn.Open(); } public SqlConnection Connection { get { return conn; } } public string Name { get { return _Name; } } } } 单件对象 using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Collections; namespace SinglePattern { class ConnectionPool { private static ConnectionItem _Connection=null; private ConnectionPool() { _Connection = new ConnectionItem(); _Connection.Open(); } public static ConnectionItem GetConnection() { if (_Connection == null) new ConnectionPool(); return _Connection; } } } 单件对象所需的组合类 using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; namespace SinglePattern { class Program { static void Main(string[] args) { ConnectionItem ci; ci = ConnectionPool.GetConnection(); SqlCommand cmd1=new SqlCommand("insert into Commodity values('a',1,'a',1,'6e81540d-6604-4378-b731-29280f839cd9')"); SqlCommand cmd2 = new SqlCommand("insert into Commodity values('b',1,'b',1,'6e81540d-6604-4378-b731-29280f839cd9')"); SqlCommand cmd3 = new SqlCommand("insert into Commodity values('c',1,'c',1,'6e81540d-6604-4378-b731-29280f839cd9')"); SqlCommand cmd4 = new SqlCommand("insert into Commodity values('d',1,'d',1,'6e81540d-6604-4378-b731-29280f839cd9')"); SqlCommand cmd5 = new SqlCommand("insert into Commodity values('e',1,'e',1,'6e81540d-6604-4378-b731-29280f839cd9')"); cmd1.Connection = ci.Connection; cmd2.Connection = ci.Connection; cmd3.Connection = ci.Connection; cmd4.Connection = ci.Connection; cmd5.Connection = ci.Connection; cmd1.ExecuteNonQuery(); cmd2.ExecuteNonQuery(); cmd3.ExecuteNonQuery(); cmd4.ExecuteNonQuery(); cmd5.ExecuteNonQuery(); ci.Close(); Console.ReadLine(); } } } 代码调用者