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];
}
}
}