数据库访问类

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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值