<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        asp.net下Oracle,SQL Server,Access萬(wàn)能數(shù)據(jù)庫(kù)通用類

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:42:59
        文檔

        asp.net下Oracle,SQL Server,Access萬(wàn)能數(shù)據(jù)庫(kù)通用類

        asp.net下Oracle,SQL Server,Access萬(wàn)能數(shù)據(jù)庫(kù)通用類: 代碼如下:using System; using System.Collections; using System.Collections.Specialized; using System.Data; using System.Data.SqlClient; using System.Data.OleDb; using System.Data.Ora
        推薦度:
        導(dǎo)讀asp.net下Oracle,SQL Server,Access萬(wàn)能數(shù)據(jù)庫(kù)通用類: 代碼如下:using System; using System.Collections; using System.Collections.Specialized; using System.Data; using System.Data.SqlClient; using System.Data.OleDb; using System.Data.Ora

        代碼如下:

        using System;
        using System.Collections;
        using System.Collections.Specialized;
        using System.Data;
        using System.Data.SqlClient;
        using System.Data.OleDb;
        using System.Data.OracleClient;
        using System.Configuration;
        using System.Reflection;

        namespace SystemFramework.DAL
        {
        /**//// <summary>
        /// All rights reserved
        /// 數(shù)據(jù)訪問(wèn)基礎(chǔ)類
        /// 用戶可以修改滿足自己項(xiàng)目的需要。
        /// </summary>
        public class DataBaseLayer
        {
        //數(shù)據(jù)庫(kù)連接字符串(web.config來(lái)配置)
        //<add key="ConnectionString" value="server=127.0.0.1;database=DATABASE;uid=sa;pwd=" />
        private string connectionString;
        public string ConntionString
        {
        get
        {
        return connectionString ;
        }
        set
        {
        connectionString = value;
        }
        }


        public DataBaseLayer(string strConnect,string dataType)
        {
        this.ConntionString = strConnect;
        this.DbType = dataType;
        }


        public DataBaseLayer()
        {
        this.connectionString = ConfigurationSettings.AppSettings["ConnectionString"] ;
        this.dbType = ConfigurationSettings.AppSettings["DataType"] ;
        }

        /**//// <summary>
        /// 數(shù)據(jù)庫(kù)類型
        /// </summary>
        private string dbType;
        public string DbType
        {
        get
        {
        if ( dbType == string.Empty || dbType == null )
        {
        return "Access";
        }
        else
        {
        return dbType;
        }
        }
        set
        {
        if ( value != string.Empty && value != null )
        {
        dbType = value;
        }
        if (dbType ==string.Empty || dbType == null)
        {
        dbType = ConfigurationSettings.AppSettings["DataType"];
        }
        if ( dbType == string.Empty || dbType == null )
        {
        dbType = "Access";
        }
        }
        }


        轉(zhuǎn)換參數(shù)#region 轉(zhuǎn)換參數(shù)
        private System.Data.IDbDataParameter iDbPara(string ParaName,string DataType)
        {
        switch(this.DbType)
        {
        case "SqlServer":
        return GetSqlPara(ParaName,DataType);

        case "Oracle":
        return GetOleDbPara(ParaName,DataType);

        case "Access":
        return GetOleDbPara(ParaName,DataType);

        default :
        return GetSqlPara(ParaName,DataType);

        }
        }

        private System.Data.SqlClient.SqlParameter GetSqlPara( string ParaName , string DataType)
        {
        switch(DataType)
        {
        case "Decimal":
        return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.Decimal );
        case "Varchar":
        return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.VarChar );
        case "DateTime":
        return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.DateTime );
        case "Iamge":
        return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.Image );
        case "Int":
        return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.Int );
        case "Text":
        return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.NText );
        default :
        return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.VarChar );
        }
        }

        private System.Data.OracleClient.OracleParameter GetOraclePara( string ParaName , string DataType)
        {
        switch(DataType)
        {
        case "Decimal":
        return new System.Data.OracleClient.OracleParameter( ParaName, System.Data.OracleClient.OracleType.Double);

        case "Varchar":
        return new System.Data.OracleClient.OracleParameter ( ParaName, System.Data.OracleClient.OracleType.VarChar );

        case "DateTime":
        return new System.Data.OracleClient.OracleParameter ( ParaName, System.Data.OracleClient.OracleType.DateTime );

        case "Iamge":
        return new System.Data.OracleClient.OracleParameter ( ParaName, System.Data.OracleClient.OracleType.BFile );

        case "Int":
        return new System.Data.OracleClient.OracleParameter ( ParaName, System.Data.OracleClient.OracleType.Int32 );

        case "Text":
        return new System.Data.OracleClient.OracleParameter ( ParaName, System.Data.OracleClient.OracleType.LongVarChar );

        default:
        return new System.Data.OracleClient.OracleParameter ( ParaName, System.Data.OracleClient.OracleType.VarChar );

        }
        }

        private System.Data.OleDb.OleDbParameter GetOleDbPara( string ParaName , string DataType)
        {
        switch(DataType)
        {
        case "Decimal":
        return new System.Data.OleDb.OleDbParameter( ParaName, System.Data.DbType.Decimal);

        case "Varchar":
        return new System.Data.OleDb.OleDbParameter ( ParaName, System.Data.DbType.String );

        case "DateTime":
        return new System.Data.OleDb.OleDbParameter ( ParaName, System.Data.DbType.DateTime );

        case "Iamge":
        return new System.Data.OleDb.OleDbParameter( ParaName, System.Data.DbType.Binary );

        case "Int":
        return new System.Data.OleDb.OleDbParameter ( ParaName, System.Data.DbType.Int32 );

        case "Text":
        return new System.Data.OleDb.OleDbParameter ( ParaName, System.Data.DbType.String );

        default:
        return new System.Data.OleDb.OleDbParameter ( ParaName, System.Data.DbType.String );

        }
        }

        #endregion

        創(chuàng)建 Connection 和 Command#region 創(chuàng)建 Connection 和 Command

        private IDbConnection GetConnection()
        {
        switch(this.DbType)
        {
        case "SqlServer":
        return new System.Data.SqlClient.SqlConnection(this.ConntionString);

        case "Oracle":
        return new System.Data.OracleClient.OracleConnection(this.ConntionString);

        case "Access":
        return new System.Data.OleDb.OleDbConnection(this.ConntionString);
        default:
        return new System.Data.SqlClient.SqlConnection(this.ConntionString);
        }
        }


        private IDbCommand GetCommand(string Sql,IDbConnection iConn)
        {
        switch(this.DbType)
        {
        case "SqlServer":
        return new System.Data.SqlClient.SqlCommand(Sql,(SqlConnection)iConn);

        case "Oracle":
        return new System.Data.OracleClient.OracleCommand(Sql,(OracleConnection)iConn);

        case "Access":
        return new System.Data.OleDb.OleDbCommand(Sql,(OleDbConnection)iConn);
        default:
        return new System.Data.SqlClient.SqlCommand(Sql,(SqlConnection)iConn);
        }
        }

        private IDbCommand GetCommand()
        {
        switch(this.DbType)
        {
        case "SqlServer":
        return new System.Data.SqlClient.SqlCommand();

        case "Oracle":
        return new System.Data.OracleClient.OracleCommand();

        case "Access":
        return new System.Data.OleDb.OleDbCommand();
        default:
        return new System.Data.SqlClient.SqlCommand();
        }
        }

        private IDataAdapter GetAdapater(string Sql,IDbConnection iConn)
        {
        switch(this.DbType)
        {
        case "SqlServer":
        return new System.Data.SqlClient.SqlDataAdapter(Sql,(SqlConnection)iConn);

        case "Oracle":
        return new System.Data.OracleClient.OracleDataAdapter(Sql,(OracleConnection)iConn);

        case "Access":
        return new System.Data.OleDb.OleDbDataAdapter(Sql,(OleDbConnection)iConn);

        default:
        return new System.Data.SqlClient.SqlDataAdapter(Sql,(SqlConnection)iConn);;
        }

        }

        private IDataAdapter GetAdapater()
        {
        switch(this.DbType)
        {
        case "SqlServer":
        return new System.Data.SqlClient.SqlDataAdapter();

        case "Oracle":
        return new System.Data.OracleClient.OracleDataAdapter();

        case "Access":
        return new System.Data.OleDb.OleDbDataAdapter();

        default:
        return new System.Data.SqlClient.SqlDataAdapter();
        }
        }

        private IDataAdapter GetAdapater(IDbCommand iCmd)
        {
        switch(this.DbType)
        {
        case "SqlServer":
        return new System.Data.SqlClient.SqlDataAdapter((SqlCommand)iCmd);

        case "Oracle":
        return new System.Data.OracleClient.OracleDataAdapter((OracleCommand)iCmd);

        case "Access":
        return new System.Data.OleDb.OleDbDataAdapter((OleDbCommand)iCmd);

        default:
        return new System.Data.SqlClient.SqlDataAdapter((SqlCommand)iCmd);
        }
        }
        #endregion

        執(zhí)行簡(jiǎn)單SQL語(yǔ)句#region 執(zhí)行簡(jiǎn)單SQL語(yǔ)句
        /**//// <summary>
        /// 執(zhí)行SQL語(yǔ)句,返回影響的記錄數(shù)
        /// </summary>
        /// <param name="SQLString">SQL語(yǔ)句</param>
        /// <returns>影響的記錄數(shù)</returns>
        public int ExecuteSql(string SqlString)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        using (System.Data.IDbCommand iCmd = GetCommand(SqlString,iConn))
        {
        iConn.Open();
        try
        {

        int rows=iCmd.ExecuteNonQuery();
        return rows;
        }
        catch(System.Exception E)
        {
        throw new Exception(E.Message);
        }
        finally
        {
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }
        }
        }

        /**//// <summary>
        /// 執(zhí)行多條SQL語(yǔ)句,實(shí)現(xiàn)數(shù)據(jù)庫(kù)事務(wù)。
        /// </summary>
        /// <param name="SQLStringList">多條SQL語(yǔ)句</param>
        public void ExecuteSqlTran(ArrayList SQLStringList)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        iConn.Open();
        using(System.Data.IDbCommand iCmd = GetCommand())
        {
        iCmd.Connection=iConn;
        using(System.Data.IDbTransaction iDbTran = iConn.BeginTransaction())
        {
        iCmd.Transaction=iDbTran;
        try
        {
        for(int n=0;n<SQLStringList.Count;n++)
        {
        string strsql = SQLStringList[n].ToString();
        if ( strsql.Trim().Length>1)
        {
        iCmd.CommandText = strsql;
        iCmd.ExecuteNonQuery();
        }
        }
        iDbTran.Commit();
        }
        catch(System.Exception E)
        {
        iDbTran.Rollback();
        throw new Exception(E.Message);
        }
        finally
        {
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }

        }

        }
        }
        /**//// <summary>
        /// 執(zhí)行帶一個(gè)存儲(chǔ)過(guò)程參數(shù)的的SQL語(yǔ)句。
        /// </summary>
        /// <param name="SQLString">SQL語(yǔ)句</param>
        /// <param name="content">參數(shù)內(nèi)容,比如一個(gè)字段是格式復(fù)雜的文章,有特殊符號(hào),可以通過(guò)這個(gè)方式添加</param>
        /// <returns>影響的記錄數(shù)</returns>
        public int ExecuteSql(string SqlString,string content)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        using(System.Data.IDbCommand iCmd = GetCommand(SqlString,iConn))
        {
        System.Data.IDataParameter myParameter = this.iDbPara( "@content", "Text");
        myParameter.Value = content ;
        iCmd.Parameters.Add(myParameter);
        iConn.Open();
        try
        {

        int rows = iCmd.ExecuteNonQuery();
        return rows;
        }
        catch( System.Exception e )
        {
        throw new Exception(e.Message);
        }
        finally
        {
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }
        }
        }


        /**//// <summary>
        /// 向數(shù)據(jù)庫(kù)里插入圖像格式的字段(和上面情況類似的另一種實(shí)例)
        /// </summary>
        /// <param name="strSQL">SQL語(yǔ)句</param>
        /// <param name="fs">圖像字節(jié),數(shù)據(jù)庫(kù)的字段類型為image的情況</param>
        /// <returns>影響的記錄數(shù)</returns>
        public int ExecuteSqlInsertImg(string SqlString,byte[] fs)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        using(System.Data.IDbCommand iCmd = GetCommand(SqlString,iConn))
        {
        System.Data.IDataParameter myParameter = this.iDbPara( "@content", "Image");
        myParameter.Value = fs ;
        iCmd.Parameters.Add(myParameter);
        iConn.Open();
        try
        {
        int rows = iCmd.ExecuteNonQuery();
        return rows;
        }
        catch( System.Exception e )
        {
        throw new Exception(e.Message);
        }
        finally
        {
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }
        }
        }

        /**//// <summary>
        /// 執(zhí)行一條計(jì)算查詢結(jié)果語(yǔ)句,返回查詢結(jié)果(object)。
        /// </summary>
        /// <param name="SQLString">計(jì)算查詢結(jié)果語(yǔ)句</param>
        /// <returns>查詢結(jié)果(object)</returns>
        public object GetSingle(string SqlString)
        {
        using (System.Data.IDbConnection iConn = GetConnection())
        {
        using (System.Data.IDbCommand iCmd = GetCommand(SqlString,iConn))
        {
        iConn.Open();
        try
        {
        object obj = iCmd.ExecuteScalar();
        if((Object.Equals(obj,null))||(Object.Equals(obj,System.DBNull.Value)))
        {
        return null;
        }
        else
        {
        return obj;
        }
        }
        catch(System.Exception e)
        {
        throw new Exception(e.Message);
        }
        finally
        {
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }
        }
        }
        /**//// <summary>
        /// 執(zhí)行查詢語(yǔ)句,返回IDataAdapter
        /// </summary>
        /// <param name="strSQL">查詢語(yǔ)句</param>
        /// <returns>IDataAdapter</returns>
        public IDataAdapter ExecuteReader(string strSQL)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        iConn.Open();
        try
        {
        System.Data.IDataAdapter iAdapter = this.GetAdapater(strSQL,iConn);
        return iAdapter;
        }
        catch(System.Exception e)
        {
        throw new Exception(e.Message);
        }
        finally
        {
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }
        }
        /**//// <summary>
        /// 執(zhí)行查詢語(yǔ)句,返回DataSet
        /// </summary>
        /// <param name="SQLString">查詢語(yǔ)句</param>
        /// <returns>DataSet</returns>
        public DataSet Query(string sqlString)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        using(System.Data.IDbCommand iCmd = GetCommand(sqlString,iConn))
        {
        DataSet ds = new DataSet();
        iConn.Open();
        try
        {
        System.Data.IDataAdapter iAdapter = this.GetAdapater(sqlString,iConn);
        iAdapter.Fill(ds);
        return ds;
        }
        catch(System.Exception ex)
        {
        throw new Exception(ex.Message);
        }
        finally
        {
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }
        }
        }

        /**//// <summary>
        /// 執(zhí)行查詢語(yǔ)句,返回DataSet
        /// </summary>
        /// <param name="sqlString">查詢語(yǔ)句</param>
        /// <param name="dataSet">要填充的DataSet</param>
        /// <param name="tableName">要填充的表名</param>
        /// <returns>DataSet</returns>
        public DataSet Query(string sqlString,DataSet dataSet,string tableName)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        using(System.Data.IDbCommand iCmd = GetCommand(sqlString,iConn))
        {
        iConn.Open();
        try
        {
        System.Data.IDataAdapter iAdapter = this.GetAdapater(sqlString,iConn);
        ((OleDbDataAdapter)iAdapter).Fill(dataSet,tableName);
        return dataSet;
        }
        catch(System.Exception ex)
        {
        throw new Exception(ex.Message);
        }
        finally
        {
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }
        }
        }


        /**//// <summary>
        /// 執(zhí)行SQL語(yǔ)句 返回存儲(chǔ)過(guò)程
        /// </summary>
        /// <param name="sqlString">Sql語(yǔ)句</param>
        /// <param name="dataSet">要填充的DataSet</param>
        /// <param name="startIndex">開(kāi)始記錄</param>
        /// <param name="pageSize">頁(yè)面記錄大小</param>
        /// <param name="tableName">表名稱</param>
        /// <returns>DataSet</returns>
        public DataSet Query(string sqlString , DataSet dataSet ,int startIndex ,int pageSize, string tableName )
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        iConn.Open();
        try
        {
        System.Data.IDataAdapter iAdapter = this.GetAdapater(sqlString,iConn);

        ((OleDbDataAdapter)iAdapter).Fill(dataSet,startIndex,pageSize,tableName);

        return dataSet;
        }
        catch(Exception ex)
        {
        throw new Exception(ex.Message);
        }
        finally
        {
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }
        }


        /**//// <summary>
        /// 執(zhí)行查詢語(yǔ)句,向XML文件寫(xiě)入數(shù)據(jù)
        /// </summary>
        /// <param name="sqlString">查詢語(yǔ)句</param>
        /// <param name="xmlPath">XML文件路徑</param>
        public void WriteToXml(string sqlString,string xmlPath)
        {
        Query(sqlString).WriteXml(xmlPath);
        }

        /**//// <summary>
        /// 執(zhí)行查詢語(yǔ)句
        /// </summary>
        /// <param name="SqlString">查詢語(yǔ)句</param>
        /// <returns>DataTable </returns>
        public DataTable ExecuteQuery(string sqlString)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        //System.Data.IDbCommand iCmd = GetCommand(sqlString,iConn);
        DataSet ds = new DataSet();
        try
        {
        System.Data.IDataAdapter iAdapter = this.GetAdapater(sqlString,iConn);
        iAdapter.Fill(ds);
        }
        catch(System.Exception e)
        {
        throw new Exception(e.Message);
        }
        finally
        {
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        return ds.Tables[0];
        }
        }

        /**//// <summary>
        /// 執(zhí)行查詢語(yǔ)句
        /// </summary>
        /// <param name="SqlString">查詢語(yǔ)句</param>
        /// <returns>DataTable </returns>
        public DataTable ExecuteQuery(string SqlString,string Proc)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        using(System.Data.IDbCommand iCmd = GetCommand(SqlString,iConn))
        {
        iCmd.CommandType = CommandType.StoredProcedure;
        DataSet ds = new DataSet();
        try
        {
        System.Data.IDataAdapter iDataAdapter = this.GetAdapater(SqlString,iConn);
        iDataAdapter.Fill(ds);
        }
        catch(System.Exception e)
        {
        throw new Exception(e.Message);
        }
        finally
        {
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        return ds.Tables[0];
        }


        }
        }

        /**//// <summary>
        ///
        /// </summary>
        /// <param name="Sql"></param>
        /// <returns></returns>
        public DataView ExeceuteDataView(string Sql)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        using(System.Data.IDbCommand iCmd = GetCommand(Sql,iConn))
        {
        DataSet ds = new DataSet();
        try
        {
        System.Data.IDataAdapter iDataAdapter = this.GetAdapater(Sql,iConn);
        iDataAdapter.Fill(ds);
        return ds.Tables[0].DefaultView;
        }
        catch(System.Exception e)
        {
        throw new Exception(e.Message);
        }
        finally
        {
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }
        }
        }

        #endregion

        執(zhí)行帶參數(shù)的SQL語(yǔ)句#region 執(zhí)行帶參數(shù)的SQL語(yǔ)句
        /**//// <summary>
        /// 執(zhí)行SQL語(yǔ)句,返回影響的記錄數(shù)
        /// </summary>
        /// <param name="SQLString">SQL語(yǔ)句</param>
        /// <returns>影響的記錄數(shù)</returns>
        public int ExecuteSql(string SQLString,params IDataParameter[] iParms)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        System.Data.IDbCommand iCmd = GetCommand();
        {
        try
        {
        PrepareCommand(out iCmd, iConn, null , SQLString, iParms );
        int rows=iCmd.ExecuteNonQuery();
        iCmd.Parameters.Clear();
        return rows;
        }
        catch(System.Exception E)
        {
        throw new Exception( E.Message );
        }
        finally
        {
        iCmd.Dispose();
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }
        }
        }


        /**//// <summary>
        /// 執(zhí)行多條SQL語(yǔ)句,實(shí)現(xiàn)數(shù)據(jù)庫(kù)事務(wù)。
        /// </summary>
        /// <param name="SQLStringList">SQL語(yǔ)句的哈希表(key為sql語(yǔ)句,value是該語(yǔ)句的SqlParameter[])</param>
        public void ExecuteSqlTran(Hashtable SQLStringList)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        iConn.Open();
        using (IDbTransaction iTrans = iConn.BeginTransaction())
        {
        System.Data.IDbCommand iCmd = GetCommand();
        try
        {
        //循環(huán)
        foreach ( DictionaryEntry myDE in SQLStringList)
        {
        string cmdText = myDE.Key.ToString();
        IDataParameter[] iParms=( IDataParameter[] ) myDE.Value;
        PrepareCommand( out iCmd , iConn , iTrans , cmdText , iParms );
        int val = iCmd.ExecuteNonQuery();
        iCmd.Parameters.Clear();
        }
        iTrans.Commit();
        }
        catch
        {
        iTrans.Rollback();
        throw;
        }
        finally
        {
        iCmd.Dispose();
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }

        }
        }
        }


        /**//// <summary>
        /// 執(zhí)行一條計(jì)算查詢結(jié)果語(yǔ)句,返回查詢結(jié)果(object)。
        /// </summary>
        /// <param name="SQLString">計(jì)算查詢結(jié)果語(yǔ)句</param>
        /// <returns>查詢結(jié)果(object)</returns>
        public object GetSingle(string SQLString,params IDataParameter[] iParms)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        System.Data.IDbCommand iCmd = GetCommand();
        {
        try
        {
        PrepareCommand( out iCmd, iConn, null , SQLString, iParms );
        object obj = iCmd.ExecuteScalar();
        iCmd.Parameters.Clear();
        if((Object.Equals(obj,null))||(Object.Equals(obj,System.DBNull.Value)))
        {
        return null;
        }
        else
        {
        return obj;
        }
        }
        catch(System.Exception e)
        {
        throw new Exception(e.Message);
        }
        finally
        {
        iCmd.Dispose();
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }
        }
        }

        /**//// <summary>
        /// 執(zhí)行查詢語(yǔ)句,返回IDataReader
        /// </summary>
        /// <param name="strSQL">查詢語(yǔ)句</param>
        /// <returns> IDataReader </returns>
        public IDataReader ExecuteReader(string SQLString,params IDataParameter[] iParms)
        {
        System.Data.IDbConnection iConn = this.GetConnection();
        {
        System.Data.IDbCommand iCmd = GetCommand();
        {
        try
        {
        PrepareCommand(out iCmd, iConn , null , SQLString , iParms);
        System.Data.IDataReader iReader = iCmd.ExecuteReader();
        iCmd.Parameters.Clear();
        return iReader;
        }
        catch(System.Exception e)
        {
        throw new Exception(e.Message);
        }
        finally
        {
        iCmd.Dispose();
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }
        }
        }

        /**//// <summary>
        /// 執(zhí)行查詢語(yǔ)句,返回DataSet
        /// </summary>
        /// <param name="SQLString">查詢語(yǔ)句</param>
        /// <returns>DataSet</returns>
        public DataSet Query(string sqlString,params IDataParameter[] iParms)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        IDbCommand iCmd = GetCommand();
        {
        PrepareCommand(out iCmd , iConn , null , sqlString , iParms );
        try
        {
        IDataAdapter iAdapter = this.GetAdapater(sqlString,iConn);
        DataSet ds = new DataSet();
        iAdapter.Fill(ds);
        iCmd.Parameters.Clear();
        return ds;
        }
        catch(System.Exception ex)
        {
        throw new Exception(ex.Message);
        }
        finally
        {
        iCmd.Dispose();
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }
        }
        }
        }


        /**//// <summary>
        /// 初始化Command
        /// </summary>
        /// <param name="iCmd"></param>
        /// <param name="iConn"></param>
        /// <param name="iTrans"></param>
        /// <param name="cmdText"></param>
        /// <param name="iParms"></param>
        private void PrepareCommand(out IDbCommand iCmd,IDbConnection iConn,System.Data.IDbTransaction iTrans, string cmdText, IDataParameter[] iParms)
        {
        if (iConn.State != ConnectionState.Open)
        iConn.Open();
        iCmd = this.GetCommand();
        iCmd.Connection = iConn;
        iCmd.CommandText = cmdText;
        if (iTrans != null)
        iCmd.Transaction = iTrans;
        iCmd.CommandType = CommandType.Text;//cmdType;
        if (iParms != null)
        {
        foreach (IDataParameter parm in iParms)
        iCmd.Parameters.Add(parm);
        }
        }

        #endregion

        存儲(chǔ)過(guò)程操作#region 存儲(chǔ)過(guò)程操作

        /**//// <summary>
        /// 執(zhí)行存儲(chǔ)過(guò)程
        /// </summary>
        /// <param name="storedProcName">存儲(chǔ)過(guò)程名</param>
        /// <param name="parameters">存儲(chǔ)過(guò)程參數(shù)</param>
        /// <returns>SqlDataReader</returns>
        public SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
        {
        System.Data.IDbConnection iConn = this.GetConnection();
        {
        iConn.Open();

        using(SqlCommand sqlCmd = BuildQueryCommand(iConn,storedProcName, parameters))
        {
        return sqlCmd.ExecuteReader(CommandBehavior.CloseConnection);
        }
        }
        }

        /**//// <summary>
        /// 執(zhí)行存儲(chǔ)過(guò)程
        /// </summary>
        /// <param name="storedProcName">存儲(chǔ)過(guò)程名</param>
        /// <param name="parameters">存儲(chǔ)過(guò)程參數(shù)</param>
        /// <param name="tableName">DataSet結(jié)果中的表名</param>
        /// <returns>DataSet</returns>
        public DataSet RunProcedure(string storedProcName, IDataParameter[] parameters ,string tableName)
        {

        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        DataSet dataSet = new DataSet();
        iConn.Open();
        System.Data.IDataAdapter iDA = this.GetAdapater();
        iDA = this.GetAdapater( BuildQueryCommand(iConn, storedProcName, parameters ) );

        ((SqlDataAdapter)iDA).Fill( dataSet,tableName);
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        return dataSet;
        }
        }

        /**//// <summary>
        /// 執(zhí)行存儲(chǔ)過(guò)程
        /// </summary>
        /// <param name="storedProcName">存儲(chǔ)過(guò)程名</param>
        /// <param name="parameters">存儲(chǔ)過(guò)程參數(shù)</param>
        /// <param name="tableName">DataSet結(jié)果中的表名</param>
        /// <param name="startIndex">開(kāi)始記錄索引</param>
        /// <param name="pageSize">頁(yè)面記錄大小</param>
        /// <returns>DataSet</returns>
        public DataSet RunProcedure(string storedProcName, IDataParameter[] parameters ,int startIndex,int pageSize,string tableName)
        {

        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        DataSet dataSet = new DataSet();
        iConn.Open();
        System.Data.IDataAdapter iDA = this.GetAdapater();
        iDA = this.GetAdapater( BuildQueryCommand(iConn, storedProcName, parameters ) );

        ((SqlDataAdapter)iDA).Fill( dataSet,startIndex,pageSize,tableName);
        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        return dataSet;
        }
        }

        /**//// <summary>
        /// 執(zhí)行存儲(chǔ)過(guò)程 填充已經(jīng)存在的DataSet數(shù)據(jù)集
        /// </summary>
        /// <param name="storeProcName">存儲(chǔ)過(guò)程名稱</param>
        /// <param name="parameters">存儲(chǔ)過(guò)程參數(shù)</param>
        /// <param name="dataSet">要填充的數(shù)據(jù)集</param>
        /// <param name="tablename">要填充的表名</param>
        /// <returns></returns>
        public DataSet RunProcedure(string storeProcName,IDataParameter[] parameters,DataSet dataSet,string tableName)
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        iConn.Open();
        System.Data.IDataAdapter iDA = this.GetAdapater();
        iDA = this.GetAdapater(BuildQueryCommand(iConn,storeProcName,parameters));

        ((SqlDataAdapter)iDA).Fill(dataSet,tableName);

        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }

        return dataSet;
        }
        }

        /**//// <summary>
        /// 執(zhí)行存儲(chǔ)過(guò)程并返回受影響的行數(shù)
        /// </summary>
        /// <param name="storedProcName"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public int RunProcedureNoQuery(string storedProcName, IDataParameter[] parameters )
        {

        int result = 0;
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        iConn.Open();
        using(SqlCommand scmd = BuildQueryCommand(iConn,storedProcName,parameters))
        {
        result = scmd.ExecuteNonQuery();
        }

        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        }

        return result ;
        }

        public string RunProcedureExecuteScalar(string storeProcName,IDataParameter[] parameters)
        {
        string result = string.Empty;
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {

        iConn.Open();
        using(SqlCommand scmd = BuildQueryCommand(iConn,storeProcName,parameters))
        {
        object obj = scmd.ExecuteScalar();
        if(obj == null)
        result = null;
        else
        result = obj.ToString();
        }

        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }

        }

        return result;
        }

        /**//// <summary>
        /// 構(gòu)建 SqlCommand 對(duì)象(用來(lái)返回一個(gè)結(jié)果集,而不是一個(gè)整數(shù)值)
        /// </summary>
        /// <param name="connection">數(shù)據(jù)庫(kù)連接</param>
        /// <param name="storedProcName">存儲(chǔ)過(guò)程名</param>
        /// <param name="parameters">存儲(chǔ)過(guò)程參數(shù)</param>
        /// <returns>SqlCommand</returns>
        private SqlCommand BuildQueryCommand(IDbConnection iConn,string storedProcName, IDataParameter[] parameters)
        {

        IDbCommand iCmd = GetCommand(storedProcName,iConn);
        iCmd.CommandType = CommandType.StoredProcedure;
        if (parameters == null)
        {
        return (SqlCommand)iCmd;
        }
        foreach (IDataParameter parameter in parameters)
        {
        iCmd.Parameters.Add( parameter );
        }
        return (SqlCommand)iCmd;
        }

        /**//// <summary>
        /// 執(zhí)行存儲(chǔ)過(guò)程,返回影響的行數(shù)
        /// </summary>
        /// <param name="storedProcName">存儲(chǔ)過(guò)程名</param>
        /// <param name="parameters">存儲(chǔ)過(guò)程參數(shù)</param>
        /// <param name="rowsAffected">影響的行數(shù)</param>
        /// <returns></returns>
        public int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected )
        {
        using (System.Data.IDbConnection iConn = this.GetConnection())
        {
        int result;
        iConn.Open();
        using(SqlCommand sqlCmd = BuildIntCommand(iConn,storedProcName, parameters ))
        {
        rowsAffected = sqlCmd.ExecuteNonQuery();
        result = (int)sqlCmd.Parameters["ReturnValue"].Value;

        if(iConn.State != ConnectionState.Closed)
        {
        iConn.Close();
        }
        return result;
        }
        }
        }

        /**//// <summary>
        /// 創(chuàng)建 SqlCommand 對(duì)象實(shí)例(用來(lái)返回一個(gè)整數(shù)值)
        /// </summary>
        /// <param name="storedProcName">存儲(chǔ)過(guò)程名</param>
        /// <param name="parameters">存儲(chǔ)過(guò)程參數(shù)</param>
        /// <returns>SqlCommand 對(duì)象實(shí)例</returns>
        private SqlCommand BuildIntCommand(IDbConnection iConn,string storedProcName, IDataParameter[] parameters)
        {
        SqlCommand sqlCmd = BuildQueryCommand(iConn,storedProcName, parameters );
        sqlCmd.Parameters.Add( new SqlParameter ( "ReturnValue",
        SqlDbType.Int,4,ParameterDirection.ReturnValue,
        false,0,0,string.Empty,DataRowVersion.Default,null ));
        return sqlCmd;
        }
        #endregion


        }
        }

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        asp.net下Oracle,SQL Server,Access萬(wàn)能數(shù)據(jù)庫(kù)通用類

        asp.net下Oracle,SQL Server,Access萬(wàn)能數(shù)據(jù)庫(kù)通用類: 代碼如下:using System; using System.Collections; using System.Collections.Specialized; using System.Data; using System.Data.SqlClient; using System.Data.OleDb; using System.Data.Ora
        推薦度:
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 阿v视频免费在线观看| 亚洲人成网址在线观看| 亚洲av中文无码字幕色不卡| 成年在线网站免费观看无广告 | 中文毛片无遮挡高清免费| 亚洲国产成人久久笫一页| 免费大片av手机看片| 亚洲国产精品一区二区三区久久 | 一级A毛片免费观看久久精品 | 亚洲精品中文字幕无码A片老| 免费大片黄在线观看yw| 亚洲人AV在线无码影院观看| 午夜a级成人免费毛片| 麻豆91免费视频| a级亚洲片精品久久久久久久 | 国产精品亚洲精品爽爽| 免费人成网站在线高清| GOGOGO高清免费看韩国| 亚洲AV永久青草无码精品| 在线永久免费的视频草莓| 亚洲精品无播放器在线播放| 无码不卡亚洲成?人片| a在线免费观看视频| 亚洲欧洲国产精品久久| 暖暖在线日本免费中文| 国产免费人成视频尤勿视频 | 亚洲精品高清一二区久久| 91在线免费观看| 精品无码一区二区三区亚洲桃色| 67194成是人免费无码| 九九九国产精品成人免费视频| 亚洲乱色熟女一区二区三区丝袜| 99视频在线看观免费| 亚洲乱人伦中文字幕无码| 国产亚洲精品福利在线无卡一 | 男女超爽视频免费播放| 亚洲成人免费在线| 午夜a级成人免费毛片| A级毛片高清免费视频在线播放| 麻豆狠色伊人亚洲综合网站| 亚洲v国产v天堂a无码久久|