using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.Common; using System.Configuration; using System.Data.sqlClient; using System.Data.OleDb; using System.Data.Odbc; namespace readxml.DB { public class DbHelper: IDbAction { private DbHelper() { } enum DataProvider { sqlServer,OleDb,Odbc } private static DbHelper dbhelper; private static object _lock = new object(); string connString = ConfigurationManager.AppSettings["DB_CONN_STR"]; public static DbHelper DBHelper { get { lock (_lock) { if (dbhelper == null) { dbhelper = new DbHelper(); } return dbhelper; } } } /// <summary> /// 获取数据库连接 /// </summary> /// <param name="dp"></param> /// <returns></returns> private IDbConnection GetConnection(DataProvider dp) { switch (dp) { case DataProvider.sqlServer: { return new sqlConnection(connString); } case DataProvider.Odbc: { return new OdbcConnection(connString); } case DataProvider.OleDb: { return new OleDbConnection(connString); } default: throw new Exception("xxxxxxxxxxxx"); } } /// <summary> /// 打开数据库连接 /// </summary> /// <param name="conn"></param> private void OpenConnection(IDbConnection conn) { conn.open(); } /// <summary> /// 数据查询 /// </summary> /// <param name="sql"></param> /// <returns></returns> public DataTable ExecuteQuery(string sql) { DataSet ds = new DataSet(); try { sqlConnection conn = GetConnection(DataProvider.sqlServer) as sqlConnection; OpenConnection(conn); sqlCommand command = new sqlCommand(sql,conn); sqlDataAdapter adapter = new sqlDataAdapter(command); adapter.Fill(ds); conn.Close(); } catch (Exception e) { throw e; } return ds.Tables[0]; } } }