Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating DAL for ASP.NET website

I am working on Microsoft Visual Studio DAL in which I am doing the traditional method of fetching/updating the data to show the reviews of the listed items of website by retrieving data from the ItemDetails table of the website database, for creating the ItemDetails.aspx file. I added a DropDownList Control to displaying all items within its categories. On selection of category from Drop-down list, it shows all items within that category, with a hyperlink attached "Show Details" to it to show details in a grid-view. i am newbie i have no idea to create DAL for asp.net website. Need easy guidelines to create DAL for asp.net website. Help will be appreciated. What are the other ways to create DAL rather than SQLadapter.

like image 420
Sunishtha Singh Avatar asked Nov 03 '22 03:11

Sunishtha Singh


2 Answers

So for example here is a DAL I've used before for calling SPs.

It allows you to execute stored procedures and return dataset, datatables, success responses etc.

Really it depends on how you intend to access the data, will you be writing Stored Procedures or will you have queries in your code. You also have the option of using Entity Framework/LINQ.

using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Configuration;

public class _DataInteraction
{

    #region "Stored Procedures"

    public static DataTable stdReturnDataTableQuery(string procedureName, string db)
    {
        DataTable myDataTable;

        SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[db].ConnectionString);
        SqlCommand cmd = new SqlCommand();
        SqlDataAdapter myDataAdapter = new SqlDataAdapter();

        cmd.CommandText = procedureName;
        cmd.CommandType = CommandType.Text;
        cmd.Connection = myConnection;


        //-----------------------------------------------------------------------
        // make our datatable to return
        //-----------------------------------------------------------------------
        myDataTable = new DataTable();

        //-----------------------------------------------------------------------
        // fill the datatable with the stored procedure results
        //-----------------------------------------------------------------------
        try
        {
            myConnection.Open();
            myDataAdapter.SelectCommand = cmd;
            myDataAdapter.Fill(myDataTable);
        }
        catch (Exception ex)
        {
            //flag as error happened
            throw ex;
        }
        finally
        {
            myConnection.Close();
            if ((myDataAdapter != null))
                myDataAdapter.Dispose();
            if ((cmd != null))
                cmd.Dispose();
        }

        return myDataTable;
    }


    //   Return a datatable from the database
    public static DataTable stdReturnDataTable(string procedureName, List<SqlParameter> myParameters, string db)
    {
        SqlConnection myConnection = default(SqlConnection);
        SqlCommand myCommand = default(SqlCommand);
        SqlDataAdapter myDataAdapter = default(SqlDataAdapter);
        DataTable myDataTable = default(DataTable);
        string connString = null;

        //   -----------------------------------------------------------------------
        //   create instance of connection
        //   -----------------------------------------------------------------------
        connString = ConfigurationManager.ConnectionStrings[db].ConnectionString;
        myConnection = new SqlConnection();
        myConnection.ConnectionString = connString;

        //-----------------------------------------------------------------------
        //   create instance of command and dataadapter
        //-----------------------------------------------------------------------
        myCommand = new SqlCommand(procedureName, myConnection);
        myDataAdapter = new SqlDataAdapter(myCommand);

        //-----------------------------------------------------------------------
        //   say its a stored procedure command
        //-----------------------------------------------------------------------
        myCommand.CommandType = CommandType.StoredProcedure;

        //-----------------------------------------------------------------------
        //   add any parameters?
        //-----------------------------------------------------------------------
        if ((myParameters != null))
        {
            foreach (SqlParameter myParm in myParameters)
            {
                // add the parameter to the command
                myCommand.Parameters.Add(myParm);
            }
        }

        //-----------------------------------------------------------------------
        // make our datatable to return
        //-----------------------------------------------------------------------
        myDataTable = new DataTable();

        //-----------------------------------------------------------------------
        // fill the datatable with the stored procedure results
        //-----------------------------------------------------------------------
        try
        {
            myConnection.Open();
            myDataAdapter.Fill(myDataTable);
        }
        catch (Exception ex)
        {
            //flag as error happened
            throw ex;
        }
        finally
        {
            myConnection.Close();
            if ((myDataAdapter != null))
                myDataAdapter.Dispose();
            if ((myCommand != null))
                myCommand.Dispose();
        }

        return myDataTable;
    }

    //   Return a dataset from the database
    public static DataSet stdReturnDataset(string procedureName, List<SqlParameter> myParameters, string db)
    {
        SqlConnection myConnection = default(SqlConnection);
        SqlCommand myCommand = default(SqlCommand);
        SqlDataAdapter myDataAdapter = default(SqlDataAdapter);
        DataSet ds = new DataSet();
        string connString = null;

        //-----------------------------------------------------------------------
        //   create instance of connection
        //-----------------------------------------------------------------------
        connString = ConfigurationManager.ConnectionStrings[db].ConnectionString;
        myConnection = new SqlConnection();
        myConnection.ConnectionString = connString;

        //-----------------------------------------------------------------------
        //   create instance of command and dataadapter
        //-----------------------------------------------------------------------
        myCommand = new SqlCommand(procedureName, myConnection);
        myDataAdapter = new SqlDataAdapter(myCommand);

        //-----------------------------------------------------------------------
        //   say its a stored procedure command
        //-----------------------------------------------------------------------
        myCommand.CommandType = CommandType.StoredProcedure;

        //-----------------------------------------------------------------------
        //   add any parameters?
        //-----------------------------------------------------------------------
        if ((myParameters != null))
        {
            foreach (SqlParameter myParm in myParameters)
            {
                // add the parameter to the command
                myCommand.Parameters.Add(myParm);
            }
        }

        //-----------------------------------------------------------------------
        // fill the datatable with the stored procedure results
        //-----------------------------------------------------------------------
        try
        {
            myConnection.Open();
            myDataAdapter.Fill(ds);
        }
        catch (Exception ex)
        {
            //flag as error happened
            throw ex;
        }
        finally
        {
            myConnection.Close();
            if ((myDataAdapter != null))
                myDataAdapter.Dispose();
            if ((myCommand != null))
                myCommand.Dispose();
        }

        return ds;
    }

    //   Return success from a query from the database
    public static bool db_NonQuerySuccessResponse(string strCommandText, List<SqlParameter> myParameters, string db)
    {
        SqlConnection SQLConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[db].ConnectionString);
        SqlCommand SQLCommand = new SqlCommand();
        DataSet ds = new DataSet();
        string Value = "";
        bool success = false;

        try
        {
            SQLCommand.CommandText = strCommandText;
            SQLCommand.CommandType = CommandType.StoredProcedure;
            SQLCommand.Parameters.Clear();

            if ((myParameters != null))
            {
                foreach (SqlParameter myParm in myParameters)
                {
                    // add the parameter to the command
                    SQLCommand.Parameters.Add(myParm);
                }
            }

            SQLCommand.Connection = SQLConnection;
            SQLConnection.Open();
            SQLCommand.ExecuteNonQuery();
            SQLConnection.Close();

            success = true;

        }
        catch (Exception ex)
        {
            success = false;
            return success;
        }

        return success;

    }

    //   General non query, no results no success
    public static bool db_NonQuery(string strCommandText, List<SqlParameter> myParameters, string db)
    {


        SqlConnection SQLConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[db].ConnectionString);
        SqlCommand SQLCommand = new SqlCommand();
        DataSet ds = new DataSet();

        try
        {
            SQLCommand.CommandText = strCommandText;
            SQLCommand.CommandType = CommandType.StoredProcedure;
            SQLCommand.Parameters.Clear();

            if ((myParameters != null))
            {
                foreach (SqlParameter myParm in myParameters)
                {
                    // add the parameter to the command
                    SQLCommand.Parameters.Add(myParm);
                }
            }

            SQLCommand.Connection = SQLConnection;
            SQLConnection.Open();
            SQLCommand.ExecuteNonQuery();
            SQLConnection.Close();

        }
        catch (Exception ex)
        {
            return false;
        }

        return true;

    }

    ////   Execute scalar on db
    //public static string db_Scalar(string strCommandText, ref List<SqlParameter> myParameters, string db)
    //{

    //    SqlConnection SQLConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[db].ConnectionString);
    //    SqlCommand SQLCommand = new SqlCommand();
    //    string Value = "";

    //    SQLCommand.CommandText = strCommandText;
    //    SQLCommand.CommandType = CommandType.StoredProcedure;
    //    SQLCommand.Parameters.Clear();


    //    if ((myParameters != null))
    //    {
    //        foreach (SqlParameter myParm in myParameters)
    //        {
    //            // add the parameter to the command
    //            SQLCommand.Parameters.Add(myParm);
    //        }
    //    }

    //    SQLCommand.Connection = SQLConnection;
    //    SQLConnection.Open();
    //    Value = SQLCommand.ExecuteScalar;
    //    SQLConnection.Close();
    //    return Value;
    //}

    #endregion
}
like image 147
Ryan McDonough Avatar answered Nov 12 '22 10:11

Ryan McDonough


Below is 1 sample for reference............

        public List<T> GetRequests(string strNo)
    {
        List<T> objlstMapping = null;
        Mapping objMapping = null;
        try
        {
            Database objDbInstance = CreateSQLDatabase(DbConnection.MF);

            using (DbCommand objDbCommand = objDbInstance.GetStoredProcCommand(Constants.SP_QUESTS))
            {
                DALBase.AddDbParam(objDbInstance, objDbCommand, "@No", DbType.AnsiString, ParameterDirection.Input, strFolioNo);

                objDbCommand.Connection = objDbInstance.CreateConnection();
                objDbCommand.Connection.Open();
                using (DbDataReader dr = objDbCommand.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    objMapping = new List<T>();
                    if (dr.HasRows)
                    {
                        while (dr.Read())
                        {
                            objMapping = new BrokerFolioMapping();
                            objMapping .Brok_Code = SProposedValue(dr, "Code");
                            objMapping .Active = SProposedValue(dr, "Status");
                            objMapping .AccStmt_Active = SProposedValue(dr, "PortfolioStatus");

                            objlstFolioMapping.Add(objMapping );
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
                        }
        return objlstFolioMapping;
    }
like image 41
Mangal Avatar answered Nov 12 '22 10:11

Mangal