ADO。net

来源:互联网 发布:金山软件 电话会议 编辑:程序博客网 时间:2024/06/06 00:18
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];        }    }}