Cấp bậc tác giả:

TRAINING

[TUT]Xây dựng Website Bán Hàng - Xây dựng Lớp Data - Business

Được viết bởi QuangIT ngày 14/03/2013 lúc 11:03 PM
Phần trước chúng ta đã Xây dựng xong Store Procedure, phần này thực hiện xây dựng khung mô hình 3 lớp và viết code cho lớp Data.Nếu bạn đi theo hướng sử dụng Tool để Gene Code thì phần này bạn chỉ xem tham khảo, code đã tự động sinh phần dưới này rồi, bạn không cần quan tâm đến nữa.
  • 0
  • 15890
Tải tệp tin: Click ở đây

[TUT]Xây dựng Website Bán Hàng - Xây dựng Lớp Data - Business

Phần trước chúng ta đã Xây dựng xong Store Procedure, phần này thực hiện xây dựng khung mô hình 3 lớp và viết code cho lớp Data.
Nếu bạn đi theo hướng sử dụng Tool để Gene Code thì phần này bạn chỉ xem tham khảo, code đã tự động sinh phần dưới này rồi, bạn không cần quan tâm đến nữa.
Bước 1: Tạo Project Website mới, đặt tên là "WebBanHang"
Bước 2: Trong Solution, tạo Project khác sử dụng Class Library đặt tên là "MyWeb.Data"
Bước 3: Trong Solution, tạo Project khác sử dụng Class Library đặt tên là "MyWeb.Business"
Bước 4: Trong Solution, tạo Project khác sử dụng Class Library đặt tên là "MyWeb.Common" (lớp dùng chung)
Bước 5: Xóa hết các Class1.cs tại các Project. Sau đó Build Solution để Add các DLL vào Project "WebBanHang" bằng cách nhấn tổ hợp phím ctrl + shift + B để Build.
Sau khi Build xong, chuột phải lên Project "WebBanHang" chọn "Add Reference". Hộp thoại mới xuất hiện, tại Tab Projects, Add hết vào
addreference.jpg

Bước 6: Đầu tiên Lớp Business sẽ lấy dữ liệu từ lớp Data cung cấp. Nên ta Add Reference của Lớp Data vào Lớp Business bằng cách chuột phải lên Project "MyWeb.Business" chọn "Add Reference". Hộp thoại mới xuất hiện, tại Tab Projects, Add MyWeb.Data vào
Bước 7: 
- Tại Project "MyWeb.Data" tạo Class mới là UserInfo bằng cách chuột phải lên Project "MyWeb.Data", chọn Add>Class
public class UserInfo
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public string UserName { get; set; }
        public string Password { get; set; }
        public string Rule { get; set; }
        public string Status { get; set; }
    }
- Tại Project "MyWeb.Data" tạo Class mới là UserController bằng cách chuột phải lên Project "MyWeb.Data", chọn Add>Class
- Tại Project "MyWeb.Data" tạo Class mới là SQLDataProvider bằng cách chuột phải lên Project "MyWeb.Data", chọn Add>Class
- Tại Project "MyWeb.Data", chuột phải lên Project "MyWeb.Data", chọn Add Reference, tại Tab .NET, tìm System.Configuration, Add vào Project
- Tại Project "MyWeb.Data", click class "SQLDataProvider", copy đoạn code này vào
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;

namespace MyWeb.Data
{
    public class SQLDataProvider
    {
        public static string connectionstring = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();
        public static SqlConnection connection;
        public SQLDataProvider(){
            if (connection == null)
            {
                connection = new SqlConnection(connectionstring);
            }
        }
        public SqlConnection GetConnection()
        {
            if (connection.State == ConnectionState.Closed)
            {
                connection.Open();
                return connection;
            }
            else
            {
                return connection;
            }
        }
    }
}

Ý nghĩa:
Chỉ mở kết nối 1 lần và sẽ không đóng kết nối. Nếu đóng nó sẽ mở lại nó và lưu lại connection đã mở
Nếu Insert 1000 bản ghi, chương trình sẽ liên tục đóng - mở dẫn tới kết nối bị request timeout, nên ta chỉ thực hiện mở 1 lần thôi
- Tại Project "MyWeb.Data", click class "UserController", copy đoạn code này vào
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace MyWeb.Data
{
    public class UserController: SQLDataProvider
    {
        #region[User_Insert]
        public void User_Insert(UserInfo data)
        {
            using (SqlCommand cmd = new SqlCommand("sp_Users_Insert", GetConnection()))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Name", data.Name));
                cmd.Parameters.Add(new SqlParameter("@UserName", data.UserName));
                cmd.Parameters.Add(new SqlParameter("@Password", data.Password));
                cmd.Parameters.Add(new SqlParameter("@Rule", data.Rule));
                cmd.Parameters.Add(new SqlParameter("@Status", data.Status));
                cmd.ExecuteNonQuery();
            }
        }
        #endregion
    }
}
Vậy là xong control Insert, tương tự áp dụng với Update, Delete, Getby.
Update:
#region[User_Update]
        public void User_Insert(UserInfo data)
        {
            using (SqlCommand cmd = new SqlCommand("sp_Users_Update", GetConnection()))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Id", data.Id));
                cmd.Parameters.Add(new SqlParameter("@Name", data.Name));
                cmd.Parameters.Add(new SqlParameter("@UserName", data.UserName));
                cmd.Parameters.Add(new SqlParameter("@Password", data.Password));
                cmd.Parameters.Add(new SqlParameter("@Rule", data.Rule));
                cmd.Parameters.Add(new SqlParameter("@Status", data.Status));
                cmd.ExecuteNonQuery();
            }
        }
        #endregion
Delete
#region[User_Delete]
        public void User_Delete(string Id)
        {
            using (SqlCommand cmd = new SqlCommand("sp_Users_Delete", GetConnection()))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Id", Id));
                cmd.ExecuteNonQuery();
            }
        }
        #endregion
GetByAll
#region[User_GetByAll]
        public DataTable User_GetByAll()
        {
            using (SqlCommand cmd = new SqlCommand("sp_Users_GetByAll", GetConnection()))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                return dt;
            }
        }
        #endregion
GetById
#region[User_GetById]
        public DataTable User_GetById(string Id)
        {
            using (SqlCommand cmd = new SqlCommand("sp_Users_GetById", GetConnection()))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Id", Id));
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                return dt;
            }
        }
        #endregion
GetByTop
#region[User_GetByTop]
        public DataTable User_GetByTop(string Top, string Where, string Order)
        {
            using (SqlCommand cmd = new SqlCommand("sp_Users_GetByTop", GetConnection()))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Top", Top));
                cmd.Parameters.Add(new SqlParameter("@Where", Where));
                cmd.Parameters.Add(new SqlParameter("@Order", Order));
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                return dt;
            }
        }
        #endregion
- Tại Project "MyWeb.Business", tạo Class mới là UserBusiness bằng cách chuột phải lên Project "MyWeb.Business", chọn Add>Class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyWeb.Data;
using System.Data;
namespace MyWeb.Business
{
    public class UserBusiness
    {
        public UserController db = new UserController();
        #region[User_Insert]
        public void User_Insert(UserInfo data)
        {
            db.User_Insert(data);
        }
        #endregion
    }
}
Tương tự áp dụng với Update, Delete, Getby.
Update
#region[User_Update]
        public void User_Update(UserInfo data)
        {
            db.User_Update(data);
        }
        #endregion
Delete
#region[User_Delete]
        public void User_Delete(string Id)
        {
            db.User_Delete(Id);
        }
        #endregion
GetByAll
#region[User_GetByAll]
        public DataTable User_GetByAll()
        {
            return db.User_GetByAll();
        }
        #endregion
GetById
#region[User_GetById]
        public DataTable User_GetById(string Id)
        {
            return db.User_GetById(Id);
        }
        #endregion
GetByTop
#region[User_GetByTop]
        public DataTable User_GetByTop(string Top, string Where, string Order)
        {
            return db.User_GetByTop(Top, Where, Order);
        }
        #endregion

Mỗi lần làm xong Project nào, bạn cần Rebuild lại Project nhé. Bạn có thể tải tệp tin đính kèm của bài viết này bằng cách kéo chuột lên trên sẽ thấy chữ "Tải tệp tin", click vào

Phần tiếp theo, Tôi sẽ hướng dẫn bạn tạo một số lớp dùng chung trong Project Common. Một số hàm mới có lẽ bạn cần quan tâm, một số thuật toán khá hay sẽ được áp dụng xuyên suốt bài giảng này.

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML