<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="mssql" connectionString="server=.;database=sms;uid=sa;pwd=1" providerName="System.Data.SqlClient"/>
<add name="oledb" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb" providerName="System.Data.OleDb"/>
<add name="odbc" connectionString="DSN=MingTest;uid=abc;pwd=abc" providerName="System.Data.Odbc"/>
</connectionStrings>
</configuration>
/*
* Author: Ming
* 日期: 2012.04.06
* 功能: 数据库通用访问类
*/
using System.Data;
using System.Data.Common;
namespace Ming.DbHelper
{
public static class DbHelper
{
public static object ExecuteScalar(string provider, string connectionString, CommandType cmdType, string cmdText)
{
return ExecuteScalar(provider, connectionString, cmdType, cmdText, null);
}
public static object ExecuteScalar(string provider, string connectionString, CommandType cmdType, string cmdText, params IDataParameter[] para)
{
DbProviderFactory db = DbProviderFactories.GetFactory(provider);
IDbConnection con = db.CreateConnection();
con.ConnectionString = connectionString;
IDbCommand cmd = con.CreateCommand();
cmd.CommandType = cmdType;
cmd.CommandText = cmdText;
if (para != null)
{
foreach (IDataParameter idp in para)
cmd.Parameters.Add(idp);
}
con.Open();
object result = cmd.ExecuteScalar();
con.Close();
return result;
}
public static object ExecuteScalar(IDbTransaction tran, CommandType cmdType, string cmdText, params IDataParameter[] para)
{
if (tran == null) return null;
IDbConnection con = tran.Connection;
IDbCommand cmd = con.CreateCommand();
cmd.CommandType = cmdType;
cmd.CommandText = cmdText;
cmd.Transaction = tran;
if (para != null)
{
foreach (IDataParameter idp in para)
cmd.Parameters.Add(idp);
}
return cmd.ExecuteScalar();
}
public static int ExectuteNonQuery(string provider, string connectionString, CommandType cmdType, string cmdText)
{
return ExectuteNonQuery(provider, connectionString, cmdType, cmdText, null);
}
public static int ExectuteNonQuery(string provider, string connectionString, CommandType cmdType, string cmdText, params IDataParameter[] para)
{
DbProviderFactory db = DbProviderFactories.GetFactory(provider);
IDbConnection con = db.CreateConnection();
con.ConnectionString = connectionString;
IDbCommand cmd = con.CreateCommand();
cmd.CommandType = cmdType;
cmd.CommandText = cmdText;
if (para != null)
{
foreach (IDataParameter idp in para)
cmd.Parameters.Add(idp);
}
con.Open();
int result = cmd.ExecuteNonQuery();
con.Close();
return result;
}
public static int ExectuteNonQuery(IDbTransaction tran, CommandType cmdType, string cmdText, IDataParameter[] para)
{
if (tran == null) return 0;
IDbConnection con = tran.Connection;
IDbCommand cmd = con.CreateCommand();
cmd.CommandType = cmdType;
cmd.CommandText = cmdText;
cmd.Transaction = tran;
if (para != null)
{
foreach (IDataParameter idp in para)
cmd.Parameters.Add(idp);
}
return cmd.ExecuteNonQuery();
}
public static IDataReader ExecuteReader(string provider, string connectionString, CommandType cmdType, string cmdText)
{
return ExecuteReader(provider, connectionString, cmdType, cmdText, null);
}
public static IDataReader ExecuteReader(string provider, string connectionString, CommandType cmdType, string cmdText, params IDataParameter[] para)
{
DbProviderFactory db = DbProviderFactories.GetFactory(provider);
IDbConnection con = db.CreateConnection();
con.ConnectionString = connectionString;
IDbCommand cmd = con.CreateCommand();
cmd.CommandType = cmdType;
cmd.CommandText = cmdText;
if (para != null)
{
foreach (IDataParameter idp in para)
cmd.Parameters.Add(idp);
}
con.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
public static DataSet GetDataSet(string provider, string connectionString, CommandType cmdType, string cmdText)
{
return GetDataSet(provider, connectionString, cmdType, cmdText, null);
}
public static DataSet GetDataSet(string provider, string connectionString, CommandType cmdType, string cmdText, params IDataParameter[] para)
{
DbProviderFactory db = DbProviderFactories.GetFactory(provider);
IDbConnection con = db.CreateConnection();
con.ConnectionString = connectionString;
IDbCommand cmd = con.CreateCommand();
cmd.CommandType = cmdType;
cmd.CommandText = cmdText;
if (para != null)
{
foreach (IDataParameter idp in para)
cmd.Parameters.Add(idp);
}
IDbDataAdapter ada = db.CreateDataAdapter();
ada.SelectCommand = cmd;
DataSet ds = new DataSet();
ada.Fill(ds);
return ds;
}
}
}