- Diễn đàn
- LẬP TRÌNH VISUAL C#
- Tutorials và Thủ thuật lập trình C#, ASP.NET
- Cơ bản về DataBinding trong lập trình C#
Cơ bản về DataBinding trong lập trình C#
Data Binding là cách mapping các thành phần của một data source vào một thành phần GUI và tự động làm việc với dữ liệu. Ví dụ có thể bind một cột [col] vào một TextBox qua thuộc tính Text hoặc có thể bind cả một table vào DataGrid như DataGridView.
Có 2 cách bìn WinForm control vào dữ liệu :
· Simple
· Complex
Simple Data Binding
Là cách liên kết một-một giữa một thuộc tính của control và một thành phần của data source, và sử dụng control để hiển thị duy nhất một giá trị một lần.
Thử một ví dụ :
Tạo Winform App project, tại Form1 bạn cho thêm 2 textbox vào.
Sau đó trong sự kiện : Form1_Load bạn chèn thêm đoạn code sau :{
string connString = @"Server = .\SQLEXPRESS;
Integrated Security = true;
Database = Northwind";
string sql = @"SELECT * FROM employees ";
SqlConnection conn = new SqlConnection[connString];
SqlDataAdapter da = new SqlDataAdapter[sql, conn];
DataSet ds = new DataSet[];
da.Fill[ds, "employees"];
textBox1.DataBindings.Add["text", ds, "employees.firstname"];
textBox2.DataBindings.Add["text", ds, "employees.lastname"];
}
Complex Data Binding
Là liên kết một control với một hoặc nhiều thành phần data của data source, có thể hiển thị nhiều hơn 1 giá trị một lần.
Tạo một WinForm App project. Thêm vào một DataGridView, sau đó hiện ra DataGridView Task chọn Choose Data Source -> Add Project -> chọn Database -> New Connection -> SQL Server, Northwind Database -> Next đến khi nào thấy mục chọn Table cho DataSet thì chọn table : Customers rồi Finish
Build -> Ctrl + F5 xem kết quả thu được
Binding Manager Class
Tạo một WinForm App project.
Đặt vào 2 textbox và 2 button
Trong phần code của Form1.cs bạn chèn code sau :using System.Collections.Generic;
using System.ComponentModel;
using System.Data.SqlClient;
using System.Drawing;
using System.Windows.Forms;
{
{
{
InitializeComponent[];
}
// Tạo BindingManager
private BindingManagerBase bMgr;
// Sự kiện Form1_Load
{
// Tạo connection string
string connString = @"Server = .\SQLEXPRESS;
Integrated Security = true;
Database = Northwind";
// Tạo Sql Query
string sql = @"SELECT * FROM employees ";
// Tạo connectioon
SqlConnection conn = new SqlConnection[connString];
// Tạo Adapter
SqlDataAdapter da = new SqlDataAdapter[sql, conn];
// Tạo DataSet
DataSet ds = new DataSet[];
// Lấp đầy DataSet
da.Fill[ds, "employees"];
// Bind giá trị cột firstname vào textbox1
textBox1.DataBindings.Add["text", ds, "employees.firstname"];
// Bind giá trị cột lastname vào textbox2
textBox2.DataBindings.Add["text", ds, "employees.lastname"];
// Cài Binding Manager vào DataSet để quản lý
bMgr = this.BindingContext[ds, "employees"];
}
// Lấy record tiếp theo
{
bMgr.Position += 1;
}
// Trở lại record trước
{
bMgr.Position -= 1;
}
}
}
Kết thúc về Data Binding.Mục lục:
1. Giới thiệu cơ bản ngôn ngữ SQL
2. Giới thiệu cơ bản về ADO.NET
3. Tạo kết nối tới database
4. Thực thi câu lệnh SQL
5. Xử lý kết quả với Data Reader
6. Cách xử lý dữ liệu với Data Adapter và DataSet
7. Giới thiệu về DataBindingĐã được chỉnh sửa lần cuối bởi Xcross87 : 03-08-2007 lúc 10:58 AM.
string sql = @"SELECT * FROM employees ";
da.Fill[ds, "employees"];Câu truy vấn trên của bạn chỉ select từ 1 bảng nên khi Fill thì chỉ Fill 1 bang Employee. Giả sử câu truy vấn của tớ select thêm 1 bảng nữa tức là có 2 bảng [SELECT ten,nhọmlamviec,email FROM employess INNER JOIN NhomNhanVien ON NhomNhanVien.id_nhomlamviec=employees.nhomlamviec] .
Vậy khi Fill thì minh Fill nhu thế nào?
Tớ làm thế này da.Fill[ds, "employees,NhomNhanVien"];