Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 30 kết quả

Đề tài: Winform - Hướng Dẫn Viết Form Đăng Ký - Mô Hình 3 Lớp - LINQ To Entity Framework

  1. #1
    Ngày gia nhập
    10 2010
    Bài viết
    177

    Mặc định Winform - Hướng Dẫn Viết Form Đăng Ký - Mô Hình 3 Lớp - LINQ To Entity Framework

    I. Cài đặt và Chuẩn bị
    + CSDL
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky0.png
Lần xem:	1941
Size:		3.7 KB
ID:		9262

    + Form Đăng Ký
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky1.png
Lần xem:	312
Size:		14.9 KB
ID:		9263

    + TextBox Username: usernameTextBox
    + TextBox Password: passwordTextBox
    + TextBox Re-Password: cpasswordTextBox
    + TextBox Email: emailTextBox
    + TextBox Birthday: birthdayTextBox
    + TextBox Occupation: occupationTextBox
    + TextBox Address: addressTextBox
    + Radio Button Gender: rdMale - rdFemale
    + Button Update: updateButton
    + Button Sign Up: registerButton
    + Button Delete: deleteButton
    + GridView : userDataGridView


    + Bước kế tiếp Add 3 project Class Library có tên lần lượt là: DTO - DAO - BUS
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky2.png
Lần xem:	229
Size:		25.7 KB
ID:		9264
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky3.png
Lần xem:	279
Size:		69.8 KB
ID:		9265
    + Kết quả sau khi add 3 Project Class Library
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky4.png
Lần xem:	1941
Size:		7.9 KB
ID:		9266

    + Cài đặt Entity Data Model
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky5.png
Lần xem:	626
Size:		81.7 KB
ID:		9267
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky6.png
Lần xem:	335
Size:		54.3 KB
ID:		9268
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky7.png
Lần xem:	312
Size:		63.2 KB
ID:		9269
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky8.png
Lần xem:	292
Size:		52.8 KB
ID:		9270
    + Kết quả sau khi cài Entity Data Model
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky9.png
Lần xem:	262
Size:		22.2 KB
ID:		9271
    + Add Class Library cho các Project
    + Sau khi add 3 project library: DTO - DAO - BUS => Tiến hành build 3 Project đó. Sau đó làm theo các bươc sau
    + DAO
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky10.png
Lần xem:	185
Size:		11.8 KB
ID:		9272
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky11.png
Lần xem:	193
Size:		41.7 KB
ID:		9273

    + BUS
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky12.png
Lần xem:	143
Size:		21.7 KB
ID:		9274

    + Form
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky13.png
Lần xem:	122
Size:		22.6 KB
ID:		9280

    + Trong từng Project Add Reference giống như hình sau
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky14.png
Lần xem:	147
Size:		22.9 KB
ID:		9276

    + Trong project DTO => Add Class UserDTO.cs
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		dangky15.png
Lần xem:	294
Size:		37.8 KB
ID:		9277

    II. Hiển thị danh sách sinh viên
    + Trong 3 Project Class Library: Add lần lượt các class sau
    1. BUS: UserBUS.cs
    2. DAO: UserDAO.cs
    3. DTO: UserDTO.cs


    + Vào UserDAO.cs

    // Hàm này dùng để lấy ra danh sách tất cả sinh viên trong table
    Visual C# Code:
    1. using DTO;
    2.  
    3. public static List<UserDTO> GetDSUsers()
    4. {
    5.             List<UserDTO> dsUser = new List<UserDTO>();
    6.             using (DANGKYEntities dk = new DANGKYEntities())
    7.             {
    8.                 var query = from u in dk.USER_INFO
    9.                             select u;
    10.  
    11.                 foreach (var row in query)
    12.                 {
    13.                     UserDTO us = new UserDTO();
    14.                     us.username = row.USERNAME;
    15.                     us.password = row.PASSWORD;
    16.                     us.cpassword = row.CPASSWORD;
    17.                     us.email = row.EMAIL;
    18.                     us.address = row.ADDRESS;
    19.                     us.gender = row.GENDER;
    20.                     us.birthday = row.BIRTHDAY;
    21.                     us.occupation = row.OCCUPATION;
    22.                     dsUser.Add(us);
    23.                 }
    24.                 return dsUser;
    25.             }
    26. }


    + Vào UserBUS.cs

    Visual C# Code:
    1. using DTO;
    2. using DAO;
    3.  
    4. public static List<UserDTO> GetDSUSer()
    5. {
    6.             return DAO.UserDAO.GetDSUsers();
    7. }


    + Vào Form1.cs

    + Bắt sự kiện Form Load => để lúc chạy chương trình dữ liệu sẽ được lấy và gán vào cho GridView
    Visual C# Code:
    1. void LoadDSUser()
    2. {
    3.            // Lấy dữ liệu trả về từ BUS => Hàm GetDSUSer() Trả về 1 List kiểu UserDTO chứa thông tin của sinh viên
    4.             List<UserDTO> dsUser = BUS.UserBUS.GetDSUSer();
    5.             userDataGridView.DataSource = dsUser;
    6. }
    7.  
    8. private void Form1_Load(object sender, EventArgs e)
    9. {
    10.             LoadDSUser();
    11. }
    + Bước kế tiếp chỉ việc chạy chương trình và xem kết quả
    Đã được chỉnh sửa lần cuối bởi nndung179 : 03-05-2012 lúc 11:28 PM.

  2. #2
    Ngày gia nhập
    10 2010
    Bài viết
    177

    Mặc định Winform - Hướng Dẫn Viết Form Đăng Ký - Mô Hình 3 Lớp - LINQ To Entity Framework - Thêm sinh viên

    FILE CSDL: QLSV.rar

    III. Thêm sinh viên
    + Vào UserDAO.cs
    // Hàm này dùng để thêm 1 sinh viên mới vào CSDL
    Visual C# Code:
    1.   public static void InsertStudent(string username, string password, string email, string address,
    2.             string gender, string birthday, string occupation)
    3.         {
    4.             using (DANGKYEntities dk = new DANGKYEntities())
    5.             {
    6.                 USER_INFO user = new USER_INFO();
    7.                 user.USERNAME = username;
    8.                 user.PASSWORD = password;
    9.                 user.CPASSWORD = password;
    10.                 user.EMAIL = email;
    11.                 user.ADDRESS = address;
    12.                 user.GENDER = gender;
    13.                 user.BIRTHDAY = birthday;
    14.                 user.OCCUPATION = occupation;
    15.  
    16.                 dk.AddToUSER_INFO(user);
    17.                 dk.SaveChanges();
    18.             }
    19.         }
    + Vào UserBUS.cs
    Visual C# Code:
    1.  public static void InsertStudent(string username, string password, string email, string address,
    2.             string gender, string birthday, string occupation)
    3. {
    4.             DAO.UserDAO.InsertStudent(username, password, email, address, gender, birthday, occupation);
    5. }
    + Vào Form1.cs => Bắt sự kiện click Button Sign Up
    Visual C# Code:
    1. void InsertUser()
    2. {
    3.             string username = usernameTextBox.Text;
    4.             string password = passwordTextBox.Text;
    5.             string cpassword = cpasswordTextBox.Text;
    6.             string email = emailTextBox.Text;
    7.             string address = addressTextBox.Text;
    8.             string gender = "";
    9.             string birthday = birthdayTextBox.Text;
    10.             string occupation = occupationTextBox.Text;
    11.             if (rdMale.Checked == true)
    12.             {
    13.                 gender = "Male";
    14.             }
    15.             if (rdFemale.Checked == true)
    16.             {
    17.                 gender = "Female";
    18.             }
    19.             BUS.UserBUS.InsertStudent(username, password, email, address, gender, birthday, occupation);
    20. }
    21.  
    22. private void registerButton_Click(object sender, EventArgs e)
    23. {
    24.             InsertUser(); // Thêm sinh viên mới
    25.             LoadDSUser(); // Sau khi thêm load lại GridView => Cập nhật lại data trong Gridview
    26. }
    + Kết quả
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		them4.png
Lần xem:	145
Size:		66.7 KB
ID:		9284
    + So sanh với CSDL
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		them5.png
Lần xem:	54
Size:		9.4 KB
ID:		9285
    Đã được chỉnh sửa lần cuối bởi nndung179 : 03-05-2012 lúc 11:27 PM.

  3. #3
    Ngày gia nhập
    10 2010
    Bài viết
    177

    Mặc định Winform - Hướng Dẫn Viết Form Đăng Ký - Mô Hình 3 Lớp - LINQ To Entity Framework - Xóa sinh viên

    IV. Xóa sinh viên
    + Vào UserDAO.cs
    // Hàm này dùng để xóa sinh viên
    Visual C# Code:
    1. public static void DeleteStudent(string username)
    2. {
    3.             using (DANGKYEntities dk = new DANGKYEntities())
    4.             {
    5.                 var query = (from c in dk.USER_INFO
    6.                             where c.USERNAME == username
    7.                             select c).First();
    8.                
    9.                 dk.DeleteObject(query);
    10.                 dk.SaveChanges();
    11.             }
    12. }
    + Vào UserBUS.cs
    Visual C# Code:
    1. public static void DeleteStudent(string username)
    2. {
    3.             DAO.UserDAO.DeleteStudent(username);
    4. }
    + Vào Form1.cs => Bắt sự kiện click Button Delete
    Visual C# Code:
    1. int index;
    2. string idUser;
    3. void DeleteUser()
    4. {
    5.             // Lấy ra index của dòng được chọn => Từ đó lẩy ra được mã Sinh viên muỗn xóa
    6.             foreach (DataGridViewRow row in userDataGridView.Rows)
    7.             {
    8.                 if (row.Selected == true)
    9.                 {
    10.                     index = row.Index;
    11.                     // Lấy được mã sinh viên tại dòng index và lưu vào idUser
    12.                     idUser = userDataGridView.Rows[index].Cells["username"].Value.ToString();
    13.                 }
    14.             }
    15.            // Gọi hàm xóa từ BUS
    16.             BUS.UserBUS.DeleteStudent(idUser);
    17.             // Load lại GridView => cập nhật data cho gridview
    18.             LoadDSUser();
    19. }
    20. private void deleteButton_Click(object sender, EventArgs e)
    21. {
    22.             DeleteUser();
    23. }
    + Kết quả
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		xoa4.png
Lần xem:	59
Size:		42.7 KB
ID:		9287
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		xoa5.png
Lần xem:	29
Size:		58.1 KB
ID:		9288
    Đã được chỉnh sửa lần cuối bởi nndung179 : 03-05-2012 lúc 11:21 PM.

  4. #4
    Ngày gia nhập
    10 2010
    Bài viết
    177

    Mặc định Mặc định Winform - Hướng Dẫn Viết Form Đăng Ký - Mô Hình 3 Lớp - LINQ To Entity Framework - Cập nhật sinh viên

    V. Cập nhật sinh viên
    + Vào UserDAO.cs
    // Hàm này dùng để cập nhật sinh viên vào CSDL
    Visual C# Code:
    1.  public static void UpdateStudent(string username, string password, string email, string address,
    2.            string gender, string birthday, string occupation)
    3. {
    4.             using (DANGKYEntities dk = new DANGKYEntities())
    5.             {
    6.                 var query = (from u in dk.USER_INFO
    7.                              where u.USERNAME == username
    8.                              select u).First();
    9.  
    10.                 query.USERNAME = username;
    11.                 query.PASSWORD = password;
    12.                 query.CPASSWORD = password;
    13.                 query.EMAIL = email;
    14.                 query.ADDRESS = address;
    15.                 query.GENDER = gender;
    16.                 query.BIRTHDAY = birthday;
    17.                 query.OCCUPATION = occupation;
    18.  
    19.                 dk.SaveChanges();
    20.             }
    21. }
    + Vào UserBUS.cs
    Visual C# Code:
    1.   public static void UpdateStudent(string username, string password, string email, string address,
    2.          string gender, string birthday, string occupation)
    3. {
    4.             DAO.UserDAO.UpdateStudent(username, password, email, address, gender, birthday, occupation);
    5. }
    + Vào Form1.cs => Bắt sự kiện click Button Update
    Visual C# Code:
    1. int index;
    2. string idUser;
    3. void UpdateUser()
    4. {
    5.              // Lấy ra dòng data được chọn
    6.             foreach (DataGridViewRow row in userDataGridView.Rows)
    7.             {
    8.                 if (row.Selected == true)
    9.                 {
    10.                     index = row.Index;
    11.                     // Lấy ra mã sinh viên tại dòng được chọn và lưu vào idUser
    12.                     idUser = userDataGridView.Rows[index].Cells["username"].Value.ToString();
    13.                 }
    14.             }
    15.             string password = passwordTextBox.Text;
    16.             string cpassword = cpasswordTextBox.Text;
    17.             string email = emailTextBox.Text;
    18.             string address = addressTextBox.Text;
    19.             string gender = "";
    20.             string birthday = birthdayTextBox.Text;
    21.             string occupation = occupationTextBox.Text;
    22.             if (rdMale.Checked == true)
    23.             {
    24.                 gender = "Male";
    25.             }
    26.             if (rdFemale.Checked == true)
    27.             {
    28.                 gender = "Female";
    29.             }
    30.             // Gọi hàm Update từ BUS
    31.             BUS.UserBUS.UpdateStudent(idUser, password, email, address, gender, birthday, occupation);
    32.  }
    33. private void updateButton_Click(object sender, EventArgs e)
    34. {
    35.            // Gọi hàm update thông tin sinh viên
    36.             UpdateUser();
    37.            // Load lại gridview để cập nhật data
    38.             LoadDSUser();
    39. }
    + Kết quả
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		test.png
Lần xem:	59
Size:		52.5 KB
ID:		9289
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		test2.png
Lần xem:	42
Size:		63.7 KB
ID:		9290

  5. #5
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà nội
    Bài viết
    210

    Nó là nTier mà , sao lại gọi là linQ vậy bạn
    Mình nghĩ đã nTier thì phải dùng storeprocedure , xài thế này mà làm web thì kiểu gì cũng SqlInjection là cái chắc
    Quá yêu em khiến em xem
    Đó như là sơ hở
    Em điểu khiển và biến tôi thành 1 thằng khở

  6. #6
    Ngày gia nhập
    10 2010
    Bài viết
    177

    Mặc định Winform - Hướng Dẫn Viết Form Đăng Ký - Mô Hình 3 Lớp - LINQ To Entity Framework

    (3 Layers) và 3 tầng (3 tiers) gọi thế nào cũng dc mà @@
    Đã được chỉnh sửa lần cuối bởi nndung179 : 23-07-2015 lúc 11:04 AM.

  7. #7
    Ngày gia nhập
    12 2009
    Bài viết
    27

    Cho mình hỏi sao mình code phần xóa như của bạn như lại báo lỗi ở
    var query = (from c in dk.USER_INFO
    where c.USERNAME == username
    select c).First();
    Đây lài lỗi
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		LoiXoa.png
Lần xem:	30
Size:		43.8 KB
ID:		9396

    Đây là code
    class BLL
    public void XoaNguoiHienMau(int idNguoiHienMau)
    {
    var query = (from c in db.NguoiHienMaus
    where c.IDNguoiHienMau == idNguoiHienMau
    select c).First();
    db.NguoiHienMaus.DeleteOnSubmit(query);
    db.SubmitChanges();
    }
    Đã được chỉnh sửa lần cuối bởi nndung179 : 04-06-2012 lúc 06:04 PM.

  8. #8
    Ngày gia nhập
    08 2008
    Bài viết
    11

    thank bài viết hay lắm

  9. #9
    Ngày gia nhập
    10 2010
    Bài viết
    177

    public void XoaNguoiHienMau(int idNguoiHienMau)
    {
    var query = (from c in db.NguoiHienMaus
    where c.IDNguoiHienMau == idNguoiHienMau
    select c).First();
    db.NguoiHienMaus.DeleteOnSubmit(query);
    db.SubmitChanges();
    }
    Cậu check lại phần này:
    Visual C# Code:
    1. db.NguoiHienMaus.DeleteOnSubmit(query);

    code của mình ko dùng phương thức này. Mà là dùng phương thức DeleteObject
    Visual C# Code:
    1.  dk.DeleteObject(query);

  10. #10
    Ngày gia nhập
    04 2011
    Bài viết
    12

    mình làm như hướng dẫn của bạn đến bước sự kiện load Form rồi chạy thử nhưng nó chỉ hiện mỗi form chứ trong userDataGridView không hiển thị gì hết.
    Mình thử làm thêm phần Thêm sinh viên thì sau khi chạy thử. Nhấn vào nút Sign Up nó báo lỗi như hình dưới


    giúp mình với, mình làm đi làm lại nhưng vẫn thế

Các đề tài tương tự

  1. Một số vấn đề khi kết hợp mô hình 3 lớp và Entity Framework, load form khá chậm?
    Gửi bởi nuoiheo0001 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 19-08-2014, 11:13 PM
  2. Hà Nội Cần việc làm thêm viết web hay phần mềm sử dụng C#, Entity Framework, MVC3,4
    Gửi bởi vualuudan1990 trong diễn đàn Việc làm IT(tự do)
    Trả lời: 3
    Bài viết cuối: 05-09-2013, 01:35 PM
  3. LINQ to SQL và ADO.NET Entity Framework khác nhau ở điểm nào ?
    Gửi bởi dangbon trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 3
    Bài viết cuối: 01-03-2013, 11:16 AM
  4. ADO.NET Tại sao phải sử dụng LINQ hay Entity Framework
    Gửi bởi dnghia trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 14-11-2012, 01:11 PM
  5. dùng Linq hay Entity Framework để kết nối với CSDL
    Gửi bởi tuanngocpt trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 3
    Bài viết cuối: 22-10-2011, 09:18 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn