使用c#的数据库连接类

时间:2016-08-18 03:00:34

标签: c# database class connection using

这里我们尝试创建一个数据库连接类,只需调用该对象就可以在整个项目中使用它。 对于试图简化代码并提高编码标准的开发人员来说,这将非常有用

创建一个名为DataObjectClass的新类,并提供以下代码

using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Data.OracleClient;
using System.Configuration;
using System.Web.HttpContext;

public class DataObjectClass : IDisposable
{
    private string strCon;
    private OracleConnection objCon;
    private OracleTransaction objTrans;
    private string strErrorMessage = "";
    private int intRowsAffected = 0;
    private bool blnIsTransactionRequired = false;
    private bool blnIsTransactionAlreadyOn = false;
    private bool blnIsConnectionRequired = false;
    public object objOraDB;
    public static string ConnectionString;
    private decimal decCVConcurrentSeqId;
    private bool boolCVIsAvalabilityChecked = false;
    private bool boolCVIsTransactionLocked = false;
    string strCVQuery;
    static int decCVAutoUnlockDuration = 0;

    public void Dispose()
    {
        Dispose(true);

    }
   
    public int RowsAffected
    {
        //Use this property to know how many records have been affected by Insert/Update/statement
        get { return intRowsAffected; }
    }

    public string ErrorMessage
    {
        //Use this property to know the error message in case of an exception
        get { return strErrorMessage; }
    }

    private OracleCommand BuildIntCommand(string storedProcName, IDataParameter[] parameters)
    {
        OracleCommand objCmd = BuildQueryCommand(storedProcName, parameters);
        return objCmd;
    }

    private OracleCommand BuildQueryCommand(string storedProcName, IDataParameter[] parameters)
    {
        try
        {
            OracleCommand objCmd = new OracleCommand(storedProcName, objCon);
            objCmd.CommandType = CommandType.StoredProcedure;
            foreach (OracleParameter parameter in parameters)
            {
                objCmd.Parameters.Add(parameter);
            }
            return objCmd;
        }
        catch (Exception ex)
        {
        }
    }

    private OracleCommand BuildQueryCommand(string storedProcName)
    {
        OracleCommand objCmd = new OracleCommand(storedProcName, objCon);
        objCmd.CommandType = CommandType.StoredProcedure;
        return objCmd;
    }

    private OracleCommand BuildQueryCommandWithSQL(string SQLString)
    {
        OracleCommand objCmd = new OracleCommand(SQLString, objCon);
        objCmd.CommandType = CommandType.Text;
        return objCmd;
    }
    
    private OracleCommand BuildQueryCommandWithSQL(string SQLString, IDataParameter[] parameters)
    {
        try
        {
            OracleCommand objCmd = new OracleCommand(SQLString, objCon);
            objCmd.CommandType = CommandType.Text;
            foreach (OracleParameter parameter in parameters)
            {
                objCmd.Parameters.Add(parameter);
            }
            return objCmd;
        }
        catch (Exception ex)
        {
        }
    }

   public DataTable getSQLDataTable(string SQLString)
    {
        intRowsAffected = 0;
        strErrorMessage = "";
        DataTable dataTable = new DataTable();
        OracleDataAdapter OracleDA = new OracleDataAdapter();
        try
        {
            if (!blnIsTransactionRequired)
            {
                objCon = new OracleConnection(strCon);
                objCon.Open();
                OracleDA.SelectCommand = BuildQueryCommandWithSQL(SQLString);
            }
            else
            {
                if (!blnIsTransactionAlreadyOn)
                {
                    objTrans = objCon.BeginTransaction(IsolationLevel.ReadCommitted);
                    blnIsTransactionAlreadyOn = true;
                }
                OracleDA.SelectCommand = BuildQueryCommandWithSQL(SQLString);
                OracleDA.SelectCommand.Transaction = objTrans;
            }
            //OracleDA.Fill(dataTable)
            OracleDA.SelectCommand.CommandType = CommandType.Text;
            CVStTime = DateTime.Now.TimeOfDay.TotalMilliseconds;
            OracleDA.Fill(dataTable);
            CVEndTime = DateTime.Now.TimeOfDay.TotalMilliseconds;
            csApplicationDatabaseLogger(CVStTime, CVEndTime, "getSQLDataTable # " + SQLString);
            return dataTable;
        }
        catch (Exception ex)
        {
            strErrorMessage = "Message :" + ex.Message;
        }
        finally
        {
            if (!blnIsTransactionRequired)
            {
                if ((objCon != null))
                {
                    objCon.Close();
                    objCon.Dispose();
                    objCon = null;
                }
            }
            OracleDA.Dispose();
            OracleDA = null;
        }
    }

    public DataTable getSQLDataTable(string SQLString, IDataParameter[] parameters)
    {
        intRowsAffected = 0;
        strErrorMessage = "";
        DataTable dataTable = new DataTable();
        OracleDataAdapter OracleDA = new OracleDataAdapter();
        try
        {
            if (!blnIsTransactionRequired)
            {
                objCon = new OracleConnection(strCon);
                objCon.Open();
                OracleDA.SelectCommand = BuildQueryCommandWithSQL(SQLString, parameters);
            }
            else
            {
                if (!blnIsTransactionAlreadyOn)
                {
                    objTrans = objCon.BeginTransaction(IsolationLevel.ReadCommitted);
                    blnIsTransactionAlreadyOn = true;
                }
                OracleDA.SelectCommand = BuildQueryCommandWithSQL(SQLString, parameters);
                OracleDA.SelectCommand.Transaction = objTrans;
            }
            OracleDA.SelectCommand.CommandType = CommandType.Text;
            OracleDA.Fill(dataTable);
            return dataTable;
        }
        catch (Exception ex)
        {
            strErrorMessage = "Message :" + ex.Message;
        }
        finally
        {
            if (!blnIsTransactionRequired)
            {
                if ((objCon != null))
                {
                    objCon.Close();
                    objCon.Dispose();
                    objCon = null;
                }
            }
            OracleDA.Dispose();
            OracleDA = null;       
        }
    }

    public DataRow getSQLDataRow(string SQLString)
    {
        intRowsAffected = 0;
        strErrorMessage = "";
        DataSet dataSet = new DataSet();
        OracleDataAdapter OracleDA = new OracleDataAdapter();
        try
        {
            if (!blnIsTransactionRequired)
            {
                objCon = new OracleConnection(strCon);
                objCon.Open();
                OracleDA.SelectCommand = BuildQueryCommandWithSQL(SQLString);
            }
            else
            {
                if (!blnIsTransactionAlreadyOn)
                {
                    objTrans = objCon.BeginTransaction(IsolationLevel.ReadCommitted);
                    blnIsTransactionAlreadyOn = true;
                }
                OracleDA.SelectCommand = BuildQueryCommandWithSQL(SQLString);
                OracleDA.SelectCommand.Transaction = objTrans;
            }
            CVStTime = DateTime.Now.TimeOfDay.TotalMilliseconds;
            OracleDA.Fill(dataSet, 0, 1, "jay");
            CVEndTime = DateTime.Now.TimeOfDay.TotalMilliseconds;
            csApplicationDatabaseLogger(CVStTime, CVEndTime, "getSQLDataRow # " + SQLString);
            if ((dataSet != null) && dataSet.Tables.Count > 0 && dataSet.Tables[0].Rows.Count > 0)
            {
                return dataSet.Tables[0].Rows[0];
            }
        }
        catch (Exception ex)
        {
            strErrorMessage = "Message :" + ex.Message;
        }
        finally
        {
            if (!blnIsTransactionRequired)
            {
                if ((objCon != null))
                {
                    objCon.Close();
                    objCon.Dispose();
                    objCon = null;
                }
            }
            OracleDA.Dispose();
            OracleDA = null;
        }
    }

    public int ExecuteSQL(string SQLString)
    {
        intRowsAffected = 0;
        strErrorMessage = "";
        OracleCommand objCmd = default(OracleCommand);
        try
        {
            if (!blnIsTransactionRequired)
            {
                objCon = new OracleConnection(strCon);
                objCon.Open();
                objCmd = BuildQueryCommandWithSQL(SQLString);
            }
            else
            {
                if (!blnIsTransactionAlreadyOn)
                {
                    objTrans = objCon.BeginTransaction(IsolationLevel.ReadCommitted);
                    blnIsTransactionAlreadyOn = true;
                }
                objCmd = BuildQueryCommandWithSQL(SQLString);
                objCmd.Transaction = objTrans;
            }
            CVStTime = DateTime.Now.TimeOfDay.TotalMilliseconds;
            intRowsAffected = objCmd.ExecuteNonQuery;
            CVEndTime = DateTime.Now.TimeOfDay.TotalMilliseconds;
            csApplicationDatabaseLogger(CVStTime, CVEndTime, "ExecuteSQL # " + SQLString);
            return intRowsAffected;
        }
        catch (Exception ex)
        {
            strErrorMessage = "Message :" + ex.Message;
        }
        finally
        {
            if (!blnIsTransactionRequired)
            {
                if ((objCon != null))
                {
                    objCon.Close();
                    objCon.Dispose();
                    objCon = null;
                }
            }
            if ((objCmd != null))
            {
                objCmd.Parameters.Clear();
                objCmd.Dispose();
                objCmd = null;
            }
        }
    }
 
    public int ExecuteSQL(string SQLString, IDataParameter[] parameters)
    {
        intRowsAffected = 0;
        strErrorMessage = "";
        OracleCommand objCmd = default(OracleCommand);
        try
        {
            if (!blnIsTransactionRequired)
            {
                objCon = new OracleConnection(strCon);
                objCon.Open();
                objCmd = BuildQueryCommandWithSQL(SQLString, parameters);
            }
            else
            {
                if (!blnIsTransactionAlreadyOn)
                {
                    objTrans = objCon.BeginTransaction(IsolationLevel.ReadCommitted);
                    blnIsTransactionAlreadyOn = true;
                }
                objCmd = BuildQueryCommandWithSQL(SQLString, parameters);
                objCmd.Transaction = objTrans;
            }
            intRowsAffected = objCmd.ExecuteNonQuery;
            return intRowsAffected;
        }
        catch (Exception ex)
        {
            strErrorMessage = "Message :" + ex.Message;
        }
        finally
        {
            if (!blnIsTransactionRequired)
            {
                if ((objCon != null))
                {
                    objCon.Close();
                    objCon.Dispose();
                    objCon = null;
                }
            }
            if ((objCmd != null))
            {
                objCmd.Parameters.Clear();
                objCmd.Dispose();
                objCmd = null;
            }
        }
    }

    public void BeginTransaction()
    {
        objCon = new OracleConnection(strCon);
        objCon.Open();
        blnIsTransactionRequired = true;
    } 

    public void CloseConnection()
    {
        if ((objCon != null))
        {
            objCon.Close();
            objCon.Dispose();
            objCon = null;
        }
    }

    private OracleCommand BuildQueryCommandForSQLWithParam(string SQLString, IDataParameter[] parameters)
    {
        try
        {
            OracleCommand objCmd = objCon.CreateCommand();
            var _with1 = objCmd;
            _with1.CommandType = CommandType.Text;
            _with1.CommandText = SQLString;
            _with1.Parameters.Clear();
            if ((parameters != null))
            {
                foreach (OracleParameter parameter in parameters)
                {
                    if (!objCmd.Parameters.Contains(parameter))
                    {
                        objCmd.Parameters.Add(parameter);
                    }
                }
            }
            return objCmd;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

您可以在其他类上调用这些函数,如下所示

string strsql;
DataTable dtvalue;
DataObjectClass objdataclass;
strsql = "select * from tablle";
dtvalue = objdataclass.getSQLDataTable(strsql);

0 个答案:

没有答案