Monday, March 31, 2014

------------- Following Code for Data Access Layer  --------------------------------



--------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;



namespace Mohsin.Practices.PrivateLibrary.DataLib
{
    public class DataAccess
    {

        #region << Variable Declarations >>
     
        SqlConnection cnn = new SqlConnection();
        SqlCommand cmd = new SqlCommand();
        SqlDataAdapter da = new SqlDataAdapter();
        DataSet ds = new DataSet();
        string StrConnectionString = ConfigurationManager.AppSettings["DailyExpense"];
        SqlTransaction objTrans ;
        public DataSet m_DataSet;

        # endregion


        #region "<< Global Function >>"

        public  DataAccess()
        {
            cnn = new SqlConnection(StrConnectionString);
            cmd = new SqlCommand() ;
            cmd.Connection = cnn  ;
        }

        // Database Connection Open
        public void Databaseconn()
        {
            if (cnn.State != ConnectionState.Open)
            {
                cnn.Open();
            }
        }
     
        // Database Connection Close
        public void DatabaseClose()
        {
            if (cnn.State == ConnectionState.Open)
            {
                cnn.Close();
             }
        }
     
        //'Create Command Object
        public void CreateCommand(string SpName)
        {
            cmd = new SqlCommand(SpName, cnn);
            cmd.CommandType = CommandType.StoredProcedure;
         
        }
     
        //'Add Paramater to Command
        public void AddParameterToCommand(string StrParameterName, object objvalue)
        {
            cmd.Parameters.AddWithValue(StrParameterName, objvalue);
        }

        // Add OutPut Parameter...
        public void AddOutPutParameter()
        {
            SqlParameter op = new SqlParameter("@ReturnValue", SqlDbType.Int);
            op.Direction = ParameterDirection.Output;
            cmd.Parameters.Add(op);
        }

        //After Execute Query Clear Paramater
        public void ClearParameter()
        {
            cmd.Parameters.Clear();
        }
     
        //For Insertion,Update,Delete
        public int DLLExecuteNonQuery(string SpName)
        {
            try
            {
                int m_Return = 0;
                Databaseconn();
                cmd.ExecuteNonQuery();
             
                // Get the Output Parameter Value....
                m_Return = int.Parse(cmd.Parameters["@ReturnValue"].Value.ToString());

                DatabaseClose();
                ClearParameter();
                cmd.Dispose();


                if (m_Return > 0)
                {
                    return m_Return;
                }
                else
                {
                    return 0;
                }

             


            }
            catch (Exception ex)
            {
                throw ex;
             
            }
        }
     
        //For Return Value by SqlDataReader
        public SqlDataReader ExecuteDataReader(string sql)
        {
            Databaseconn();
            SqlDataReader reader = cmd.ExecuteReader();
            return reader;
        }
     
        //this method use for return value in (max,avg,etc)
        public object ExecuteSclar(string strSql)
        {

            cmd.CommandText = strSql;
            Databaseconn();

            object obj = new object();
            obj = cmd.ExecuteScalar();
            DatabaseClose();
            return obj;

        }
     
        // this method use for select query in DataTable
        public DataTable ExecuteQuery(string strSql)
        {

            cmd.CommandText = strSql;
            cmd.CommandType = CommandType.StoredProcedure;
            da = new SqlDataAdapter(cmd);
            ds = new DataSet();
            da.Fill(ds, "List");
         
            return ds.Tables[0];

        }
     
        // Select Data with Dataset with commandtype as Text
        public DataSet FillDataSet(string Psql, string Ptablename)
        {
            try
            {
                //conn = databaseconn();
                cmd = new SqlCommand(Psql, cnn);
                cmd.CommandType = CommandType.Text;
                da = new SqlDataAdapter();
                m_DataSet = new DataSet();
             
                da.SelectCommand = cmd;
                da.Fill(m_DataSet, Ptablename);

                return m_DataSet;

            }
            catch (Exception exp)
            {
                throw exp;
            }
        }

        #endregion


    }
}
--------------------------------------------------------------------------------------

No comments:

Post a Comment