Helpex - Trao đổi & giúp đỡ Đăng nhập

Ràng buộc DataGrid trong Windows Form không có Cơ sở dữ liệu

Trong một bài viết của mình, tôi đã giải thích cách liên kết một gridview trong biểu mẫu web mà không cần cơ sở dữ liệu. Ở đây, bây giờ tôi sẽ giải thích cách liên kết một datagrid trong biểu mẫu windows mà không cần cơ sở dữ liệu.

Yêu cầu này rất hữu ích khi chúng ta đang làm việc trong biểu mẫu cửa sổ hoặc biểu mẫu web. Yêu cầu của tôi ở đây rất đơn giản. Khi chúng ta nhập tất cả các trường và bấm vào nút Sách. Nó sẽ tạm thời liên kết dữ liệu với lưới dữ liệu được hiển thị bên dưới. Tôi đã hiển thị ảnh chụp màn hình bên dưới:

Ràng buộc DataGrid trong Windows Form không có Cơ sở dữ liệu

Hãy xem làm thế nào để làm điều đó; để làm điều này, bạn phải làm theo các bước sau.

  • Tạo một cơ sở dữ liệu.
  • Tạo tên cột hoặc tiêu đề bằng cách đề cập đến kiểu dữ liệu.
  • Thêm cột này vào cơ sở dữ liệu
  • Tạo một hàng chứa tất cả các giá trị từ các điều khiển đầu vào.
  • Liên kết dữ liệu với Datagrid.

Trước khi sử dụng điều này, chúng ta cần một không gian tên trong biểu mẫu của chúng ta.

using System.Data;

Bước 1 : Tạo DataTable.

DataTable dt = new DataTable();  

Bước 2: Tạo tên cột hoặc tiêu đề bằng cách đề cập đến kiểu dữ liệu.

DataColumn dc1 = new DataColumn("PERSONAL NO", typeof(int));    
DataColumn dc2 = new DataColumn("NAME", typeof(string));    
DataColumn dc3 = new DataColumn("DATE", typeof(string));    
DataColumn dc4 = new DataColumn("QUANTITY", typeof(int));    
DataColumn dc5 = new DataColumn("TYPE", typeof(string)); 

Bước 3: Thêm các cột này vào DataTable,

dt.Columns.Add(dc1);    
dt.Columns.Add(dc2);    
dt.Columns.Add(dc3);    
dt.Columns.Add(dc4);    
dt.Columns.Add(dc5); 

Bước 4: Tạo một hàng chứa tất cả các giá trị từ các phần tử đầu vào.

dt.Rows.Add(txt_personalNo.Text,txt_name.Text,txt_date.Text,Convert.ToInt32(txt_quantity.Text),cmb_type.SelectedItem.ToString()); 

Bước 5: Liên kết dữ liệu với datagrid:

dataGridView1.DataSource = dt; 

Vì vậy, đây là mã hoàn chỉnh của tôi. Tôi phải tạo một phương thức và thực hiện tất cả những điều này bên trong này và gọi phương thức trên nút Click. Đây là phương pháp của tôi:

public void createnewrow()  
{  
    DataTable dt = new DataTable();  
    DataColumn dc1 = new DataColumn("PERSONAL NO", typeof(int));  
    DataColumn dc2 = new DataColumn("NAME", typeof(string));  
    DataColumn dc3 = new DataColumn("DATE", typeof(string));  
    DataColumn dc4 = new DataColumn("QUANTITY", typeof(int));  
    DataColumn dc5 = new DataColumn("TYPE", typeof(string));  
    dt.Columns.Add(dc1);  
    dt.Columns.Add(dc2);  
    dt.Columns.Add(dc3);  
    dt.Columns.Add(dc4);  
    dt.Columns.Add(dc5);  
    dt.Rows.Add(txt_personalNo.Text, txt_name.Text, txt_date.Text, Convert.ToInt32(txt_quantity.Text), cmb_type.SelectedItem.ToString());  
    dataGridView1.DataSource = dt;  
}  

Bây giờ gọi nút Method On Book này và nhấp vào sau khi điền tất cả đầu vào.

private void btn_book_Click(object sender, EventArgs e)  
{  
createnewrow();  
} 

Ràng buộc DataGrid trong Windows Form không có Cơ sở dữ liệu

Vì vậy, theo cách này, chúng ta có thể liên kết một datagrid mà không cần cơ sở dữ liệu trong ứng dụng biểu mẫu windows.

Để duy trì trạng thái của lưới dữ liệu này, Vấn đề người dùng đang gặp phải là gì.

Sau khi nhập thông tin chi tiết của lần đặt vé đầu tiên, khi tôi thực hiện lần đặt chỗ thứ hai, thông tin đặt chỗ đầu tiên bị mất, vì vậy để tránh điều này, bạn phải thay đổi mã của mình một chút. Ở đây, tôi đã giải thích cách làm điều đó.

  • Khai báo bảng dữ liệu trên toàn cục.
  • Đặt một điều kiện trong khi bạn đang ràng buộc các hàng với lưới dữ liệu. Trước tiên, hãy kiểm tra xem có dữ liệu trong dữ liệu đó không. Nếu không có dữ liệu, hãy liên kết tiêu đề cột trong lưới dữ liệu, nếu không, chỉ liên kết hàng không có tiêu đề cột dữ liệu. Vì vậy, đây là thay đổi đầu tiên: khai báo toàn cầu dữ liệu.
public partial class LunchDinnerBookingEntry : Form  
  {  
      CanteenBAL obj = new CanteenBAL();  
       DataTable dt = new DataTable();  
      public LunchDinnerBookingEntry()  
      {  
          InitializeComponent();  
      }  

Bây giờ thay đổi thứ hai theo điều kiện.


public void createnewrow()  
        {  
            if(dt.Rows.Count<=0)  
            {  

                DataColumn dc1 = new DataColumn("PERSONAL NO", typeof(int));  
                DataColumn dc2 = new DataColumn("NAME", typeof(string));  
                DataColumn dc3 = new DataColumn("DATE", typeof(string));  
                DataColumn dc4 = new DataColumn("QUANTITY", typeof(int));  
                DataColumn dc5 = new DataColumn("TYPE", typeof(string));  


                dt.Columns.Add(dc1);  
                dt.Columns.Add(dc2);  
                dt.Columns.Add(dc3);  
                dt.Columns.Add(dc4);  
                dt.Columns.Add(dc5);  



                dt.Rows.Add(txt_personalNo.Text, txt_name.Text, txt_date.Text, Convert.ToInt32(txt_quantity.Text), cmb_type.SelectedItem.ToString());  


                dataGridView1.DataSource = dt;  

            }  
            else  
            {  

                dt.Rows.Add(txt_personalNo.Text, txt_name.Text, txt_date.Text, Convert.ToInt32(txt_quantity.Text), cmb_type.SelectedItem.ToString());  


                dataGridView1.DataSource = dt;  

            }  

Ràng buộc DataGrid trong Windows Form không có Cơ sở dữ liệu

Do đó, bằng cách này, chúng ta cũng có thể duy trì trạng thái trong ứng dụng windows.

1 hữu ích 0 bình luận 8.0k xem chia sẻ

Có thể bạn quan tâm

loading