私はMicrosoft Visual Studio DAL
を使って、ItemDetails
のテーブルからデータを取得してリストされたアイテムのレビューを表示するためにデータを取得/更新する従来の方法を行っています。 ItemDetails.aspx
ファイルを作成するためのウェブサイトデータベース。私はDropDownList Control
を追加して、そのカテゴリー内のすべてのアイテムを表示しました。 ドロップダウンリストからカテゴリを選択すると、そのカテゴリ内のすべてのアイテムが表示され、"Show Details"
というハイパーリンクがグリッドビューに表示されます。 私は初心者です。私はasp.netのウェブサイトのDAL
を作成する考えがありません。 asp.netウェブサイトのDALを作成するための簡単なガイドラインが必要です。ヘルプは高く評価されます。 SQLadapter
ではなくDALを作成する他の方法は何ですか?DAL for ASP.NETのWebサイトを作成する
5
A
答えて
1
たとえば、ここではSPを呼び出すために使用したDALがあります。
それはあなたが本当にそれは、あなたがデータにアクセスしようとする方法によって異なりますが、ストアドプロシージャを書くことになりますか、クエリを持っていますストアドプロシージャとリターンのデータセット、DataTableの、成功応答など
を実行することができますあなたのコードで。また、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
}
0
以下は参照用のサンプル1 ............
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;
}
関連する問題
- 1. Webサイトを公開するバッチファイルを作成するASP.net
- 2. asp.netのWebサイトでユーザーの特権を作成する方法
- 3. プラグイン可能なASP.Net Webサイトを作成する方法は?
- 4. ASP.NETでn-tier Webサイトを作成する適切な手順
- 5. ASP.NET MVCサイトのrobots.txtを作成する
- 6. Web Protect ASP.NET Webサイト
- 7. Webサイトのデスクトップショートカットを作成するポータブルウェイ
- 8. Webアプリケーションのグローバル変数の作成 - ASP.NET
- 9. 小規模Webサイトのデータアクセスレイヤーの作成
- 10. ASP.NET Webサイト用の再利用可能なC#コードの作成
- 11. ASP.NET Webサイトの代替言語の作成
- 12. Visual Studio 2008でASP.NET Webサイトを作成できません
- 13. ソースファイルからASP.NET MVC Webサイトを再作成
- 14. 内部データベース - ユーザー作成時のASP.NET自動Webサイト登録
- 15. ASP.Net WebサイトのSaxon
- 16. ASP.NET WebサイトのMiniprofiler
- 17. 私はASP.NET Webサイト用のプロジェクトファイルを作成する必要があります
- 18. ASP.Net/IIS自動サイト作成
- 19. データベースを使用してasp.netで多言語のWebサイトを作成する
- 20. 同じマシンにASP.NET MVC Webサイトのコピーを作成する - 大惨事?
- 21. WebサイトにASP.NET Webサイト管理ツールを展開する
- 22. VS2008 ASP.NET Webサイトvs. Webアプリケーション
- 23. WCFサービスライブラリの接続ASP.NET WebアプリケーションでのDALへの問題
- 24. ASP.NET 4.0のWebサイトを作成しました。私のWebホストはASP.NET 2.0です
- 25. Visual Studio 2008 Web Developer EditionでSilverlight ASP.NET Webサイトを作成できません
- 26. Webサービスを利用するC#Webサイトを作成する
- 27. NLog for ASP.NET Webサイトにログが記録されない
- 28. ASP.NET用ニュースプラグインWebサイト
- 29. 公開ASP.NET Webサイト
- 30. ASP.NET WebサイトのElmahを保護する
私は個人的に私はstrongly-を持つクラスとしての私のテーブルを定義(Entity Frameworkのコードファーストを使用しています型付き参照)。それは動的にDbを生成し、次にリポジトリパターンを使用してクエリーを行います。 'User User = UserRepo.Single(x => x.Username ==" Bob ");'変更を保存するための 'UnitOfWork'パターンを投げますそれは本当にエレガントで比較的効率的なORMです。 1つの大きな欠点は、大量の更新が遅くなることです。一度に何十万ものレコードを更新する場合、SQLアダプタに戻すほうが簡単です。 – Basic
私はウェブサイトのためにそれを使用したい約15-17ページと60のデータベーステーブルがあります。 –
それは本当に問題ではありません。私は〜100テーブルと数百のページを持つサイトでそれを使用しました。一括更新が問題である唯一の理由は、バッチでSQLに送信されないということです。たとえば、「UPDATE A set B = C WHERE Id = 1」、「UPDATE A set B = C WHERE Id = 2」などです。あなたが何千もの行に対して同じ更新を同時に行っていない限り、それは問題ではありません。 – Basic