5

私はMicrosoftVisualStudioに取り組んでおり、ファイルを作成するために、WebサイトデータベースのテーブルDALからデータを取得することにより、データをフェッチ/更新して、Webサイトのリストされたアイテムのレビューを表示する従来の方法を実行しています。カテゴリ内のすべてのアイテムを表示するためにを追加しました。ドロップダウンリストからカテゴリを選択すると、そのカテゴリ内のすべてのアイテムが表示され、グリッドビューに詳細を表示するためのハイパーリンクが添付されます。私は初心者です。asp.netWebサイト用に作成する考えがありません。asp.netWebサイトのDALを作成するための簡単なガイドラインが必要です。ヘルプをいただければ幸いです。ではなくDALを作成する他の方法は何ですか。ItemDetailsItemDetails.aspxDropDownList Control"Show Details"DALSQLadapter

4

2 に答える 2

1

たとえば、これは以前に SP を呼び出すために使用した DAL です。

ストアド プロシージャを実行し、データセット、データテーブル、成功応答などを返すことができます。

実際には、データへのアクセス方法、ストアドプロシージャを作成するか、コードにクエリを含めるかによって異なります。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
}
于 2013-03-08T10:42:28.110 に答える