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 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 :
[code]
private void Form1_Load(object sender, EventArgs e)
{
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");
}
[/code]
Sau đó run thì th y textbox1 là giá tr firstname đ u tiên trong record và textbox là giá tr
lastname t ng ng.ươ
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 :
[code]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace SQLServerManger
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// T o BindingManager
private BindingManagerBase bMgr;
// S ki n Form1_Load
private void Form1_Load(object sender, EventArgs e)
{
// 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 ế
private void button2_Click(object sender, EventArgs e)
{
bMgr.Position += 1;
}
// Tr l i record tr c ướ
private void button1_Click(object sender, EventArgs e)
{
bMgr.Position -= 1;
}
}
}
[/code]
Ph n này mình ch ng có gì bi t nhi u h t ch th thôi. Đ ng nghĩ là Data Binding d nhé, ế ế ế
ph c t p l m đó. Ch ng qua là code c a Data Binding đ c Generate t d ng nên mình có ượ
th làm thao tác đ n gi n th này. Nh ng n u th này thì cũng không hay l m vì không hi u ơ ế ư ế ế
cách th c làm vi c c a nó. Tóm l i là sao cũng đ c. ượ
K t thúc v Data Binding.ế