Tôi đang làm việc trên Microsoft Visual Studio DAL
trong đó tôi đang thực hiện phương pháp truyền thống để tìm nạp/cập nhật dữ liệu để hiển thị các đánh giá về các mục được liệt kê trên trang web bằng cách truy xuất dữ liệu từ bảng ItemDetails
cơ sở dữ liệu trang web, để tạo tệp ItemDetails.aspx
. Tôi đã thêm DropDownList Control
để hiển thị tất cả các mục trong danh mục của nó. Khi chọn danh mục từ danh sách thả xuống, nó hiển thị tất cả các mục trong danh mục đó, với siêu liên kết được đính kèm "Show Details"
để nó hiển thị chi tiết trong chế độ xem lưới. i am newbie tôi không có ý tưởng để tạo ra DAL
cho trang web asp.net. Cần hướng dẫn dễ dàng để tạo DAL cho trang web asp.net. Trợ giúp sẽ được đánh giá cao. Các cách khác để tạo DAL thay vì SQLadapter
là gì.Tạo DAL cho trang web ASP.NET
5
A
Trả lời
1
Vì vậy, ví dụ ở đây là một DAL tôi đã sử dụng trước đây để gọi SP.
Nó cho phép bạn thực hiện các thủ tục lưu trữ và trả lại dữ liệu, datatables, phản hồi thành công, vv
Thực sự nó phụ thuộc vào cách bạn định truy cập dữ liệu, bạn sẽ có văn bản Thủ tục lưu trữ hoặc bạn sẽ có thắc mắc trong mã của bạn. Bạn cũng có tùy chọn sử dụng 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
Dưới đây là 1 mẫu để tham khảo ............
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;
}
Các vấn đề liên quan
- 1. Miniprofiler cho trang web ASP.NET
- 2. tạo trang web cho iphone
- 3. trang web ASP.NET hoặc Web Project
- 4. Nhận tên trang web IIS từ một trang web ASP.NET
- 5. Trang web dùng thử ASP.NET
- 6. Bản đồ trang web ASP.NET
- 7. cách tạo DAL bằng petapoco
- 8. Trang web mẫu ASP.NET cho mô hình SaaS?
- 9. Chuỗi truy vấn đăng nhập Plus cho trang web ASP.NET
- 10. Trình tạo trang web tĩnh
- 11. AllowHtml không làm việc cho ASP.Net MVC 3 trang web
- 12. Sử dụng WiX để tạo trình cài đặt cho trang web ASP.Net MVC
- 13. "Remember Me" với các trang web asp.net
- 14. Thêm MVC vào Trang web ASP.NET
- 15. ASP.NET Web Api trong Web tạo
- 16. Đảm bảo một trang web ASP.Net MVC
- 17. Asp.Net: Trang web gỡ lỗi trong iis
- 18. Xác thực trang web ASP.NET với facebook
- 19. Đưa chức năng Công cụ quản trị trang web ASP.NET vào trang web
- 20. Admob cho trang web
- 21. Orchard cho các trang web tùy chỉnh
- 22. Tạo tiện ích javascript cho các trang web khác
- 23. Tự động tạo đồ họa R cho trang web
- 24. Bạn có cho phép Cấp Web truy cập trực tiếp vào DAL không?
- 25. app.config trong DAL và web.config trong WebApplication
- 26. Không thể tắt SSL cho trang web
- 27. Cách tạo trang web phù hợp?
- 28. Cách tạo Url ASP.NET Web API?
- 29. Visual Studio không thể tạo trang web trong IIS
- 30. Hộp văn bản mật khẩu C# trong trang web ASP.net
Cá nhân tôi sử dụng Entity Framework Code-First (tôi xác định các bảng của tôi như là lớp học với strongly- tham chiếu đã nhập). Nó tạo Db động và sau đó tôi sử dụng mẫu kho lưu trữ để truy vấn ví dụ ... 'User user = UserRepo.Single (x => x.Username ==" Bob ");' Throw trong mẫu 'UnitOfWork' để lưu các thay đổi và đó là một ORM thực sự thanh lịch và tương đối hiệu quả. Lưu ý rằng nhược điểm lớn nhất là cập nhật hàng loạt có thể chậm - khi bạn cập nhật hàng trăm nghìn bản ghi cùng một lúc, bạn sẽ dễ dàng quay trở lại bộ điều hợp Sql hơn. – Basic
tôi muốn sử dụng nó cho trang web có gần 15-17 trang và 60 bảng cơ sở dữ liệu. –
Đó không thực sự là một vấn đề. Tôi đã sử dụng nó trên một trang web với ~ 100 bảng và hàng trăm trang. Lý do duy nhất cập nhật hàng loạt là một vấn đề là chúng không được gửi tới SQL theo lô - ví dụ: nó cập nhật một tập B = C WHERE Id = 1', 'UPDATE Một tập hợp B = C WHERE Id = 2', v.v. thay vì 'UPDATE Một tập hợp B = C WHERE Id IN (1,2)' nhưng trừ khi bạn đang thực hiện cùng một cập nhật cho hàng ngàn hàng cùng một lúc, nó không phải là một vấn đề – Basic