SlideShare a Scribd company logo
Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET
Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 1
CHƯƠNG 5 – ADO.NET
T ng d ng, ta có th k t n i và thao tác v i cơ s d li u b ng 2 phương pháp sau:
1. K t n i thư ng xuyên
2. K t n i không thư ng xuyên
Ph n 1. K t n i thư ng xuyên
1. Các bư c th c hi n
Bư c 1: S d ng Connection k t n i n cơ s d li u
Bư c 2: Thi t l p câu l nh th c thi: Insert, Select, Update, Delete
Bư c 3: Th c hi n l nh
• M k t n i
• Th c thi câu l nh, x lý d li u tr v
• óng k t n i
2. Ví d m u
Thi t k giao di n g m các ph n như hình sau:
- Khi Load form các d li u t b ng Customers trong CSDL Northwind c a SQL Server
2000 s ư c hi n th trên ListView và DataGridView
- Khi ch n 1 dòng trên ListView ho c DataGridView, d li u c a dòng tương ng s hi n th
trên các TextBox
- Khi click vào nút Insert, d li u trong các Textbox ư c thêm vào cơ s d li u
- Khi click vào nút Update, record ư c ch n s ư c ch nh s a và c p nh t vào CSDL
- Khi click nút Delete, record ư c ch n s b xóa kh i CSDL
Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET
Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 2
Ví d 1: c d li u t b ng Customers trong CSDL Northwind c a SQL Server 2000 và
hi n th lên ListView và DataGridView
// 1. Thi t l p k t n i
string strConn = "server=.; Database = Northwind; uid=sa; pwd=;";
SqlConnection cnNorth = new SqlConnection(strConn);
// 2. Thi t l p câu l nh
string sqlSelect = "select CustomerID, CompanyName, Address, City from
Customers";
SqlCommand cmdNorth = new SqlCommand(sqlSelect, cnNorth);
cmdNorth.Connection.Open();
// 3. Th c hi n l nh
SqlDataReader reader = cmdNorth.ExecuteReader();
// L y d li u hi n th , x lý... qua i tư ng Reader
// Xem ví d 1.1 ho c ví d 1.2
// …
// óng k t n i
cmdNorth.Connection.Close();
Ví d 1.1: o n chương trình sau mô t vi c c d li u t i tư ng reader và hi n th lên
ListView
CustomerInfo cm; // Xem ví d 1.3
while (reader.Read())
{
cm = new CustomerInfo();
cm.CustId = reader.GetString(0);
cm.ContactName = reader.GetString(1);
if (reader.IsDBNull(2))
cm.CustAddress = "";
else
cm.CustAddress =reader.GetString(2);
if (reader.IsDBNull(3))
cm.City = "";
else
cm.City =reader.GetString(3);
ListViewItem lvItem = new ListViewItem(cm.CustId);
lvItem.SubItems.Add(cm.ContactName);
lvItem.SubItems.Add(cm.CustAddress);
lvItem.SubItems.Add(cm.City);
lvItem.Tag = cm;
lsvCustomer.Items.Add(lvItem);
}
Ví d 1.2: o n chương trình sau mô t vi c c d li u t i tư ng reader và hi n th lên
DataGridView
ArrayList list = new ArrayList();
CustomerInfo cm; // Xem ví d 1.3
while (reader.Read())
{
cm = new CustomerInfo();
cm.CustId = reader.GetString(0);
cm.ContactName = reader.GetString(1);
if (reader.IsDBNull(2))
cm.CustAddress = "";
else
cm.CustAddress =reader.GetString(2);
if (reader.IsDBNull(3))
cm.City = "";
else
cm.City =reader.GetString(3);
list.Add(cm);
Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET
Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 3
}
dataGridView1.DataSource = list;
Ví d 1.3: CustomerInfo là l p mô t các thông tin v i tư ng Customer. CustomerInfo
ư c vi t như sau:
public class CustomerInfo
{
string custId;
string contactName;
string custAddress;
string city;
public CustomerInfo()
{ }
public CustomerInfo(string custId, string contactName, string custAddress,
string city)
{
this.custId = custId;
this.contactName = contactName;
this.custAddress = custAddress;
this.city = city;
}
public string CustId
{
get {return custId;}
set {custId = value;}
}
public string ContactName
{
get {return contactName;}
set {contactName = value;}
}
public string CustAddress
{
get {return custAddress;}
set {custAddress = value;}
}
public string City
{
get {return city;}
set {city = value;}
}
}
Ví d 2: L y d li u t các Textbox: txtID, txtName, txt ddress và txtCity lưu vào Database
và c p nh t m i d li u hi n th trên form
private void cmdInsert_Click(object sender, System.EventArgs e)
{
// 1. K t n i
string strConn = "server=(local); Database = Northwind; uid=sa; pwd=;";
SqlConnection cnNorth = new SqlConnection(strConn);
// 2. Thi t t câu l nh th c thi
string sqlInsert= "insert into Customers(CustomerID, " +
"CompanyName, Address, City) values(@CustomerID, @CompanyName, "+
"@Address, @City)";
SqlCommand cmdNorth = new SqlCommand(sqlInsert, cnNorth);
cmdNorth.Parameters.Add("@CustomerID", SqlDbType.NChar);
cmdNorth.Parameters.Add("@CompanyName", SqlDbType.NChar);
cmdNorth.Parameters.Add("@Address", SqlDbType.NChar);
cmdNorth.Parameters.Add("@City", SqlDbType.NChar);
cmdNorth.Parameters[0].Value = txtID.Text;
cmdNorth.Parameters[1].Value = txtName.Text;
cmdNorth.Parameters[2].Value = txtAddress.Text;
Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET
Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 4
cmdNorth.Parameters[3].Value = txtCity.Text;
// 3. Th c thi l nh
cmdNorth.Connection.Open();
int kq = cmdNorth.ExecuteNonQuery();
if (kq > 0)
{
MessageBox.Show("D li u ã c p nh t!");
// G i l i hàm Load d li u Ví d 1
}
else
{
MessageBox.Show("Có l i xãy ra!");
}
cmdNorth.Connection.Close();
}
Ví d 3: Ch n 1 dòng trên ListView d li u tương ng s hi n th trên các TextBox.
private void lsvCustomer_SelectedIndexChanged(object sender,
System.EventArgs e)
{
if (lsvCustomer.SelectedItems.Count == 0)
return;
CustomerInfo cm = lvCustomer.SelectedItems[0].Tag as CustomerInfo;
txtID.Text = cm.CustId;
txtName.Text = cm.ContactName;
txtAddress.Text = cm.CustAddress;
txtCity.Text = cm.City;
}
Ví d 4: Lưu d li u sau khi ã hi u ch nh trên TextBox vào CSDL
private void cmdUpdate_Click(object sender, System.EventArgs e)
{
if (lsvCustomer.SelectedItems.Count == 0)
return;
// L y thông tin v i tư ng ang ư c ch n
CustomerInfo old = lsvCustomer.SelectedItems[0].Tag as CustomerInfo;
// L y thông tin sau khi ã ch nh s a
CustomerInfo cm = new CustomerInfo(txtID.Text, txtName.Text,
txtAddress.Text, txtCity.Text);
// 1. i tư ng k t n i
string strConn = "server=(local); Database = Northwind; uid=sa; pwd=;"
SqlConnection cnNorth = new SqlConnection(strConn);
// 2. Câu l nh th c thi
string sqlUpdate ="update Customers set CustomerID = "+
"@CustomerID, CompanyName = @CompanyName, Address = @Address, "+
"City = @City where CustomerID = @OrigCustomerID";
SqlCommand cmdNorth = new SqlCommand(sqlUpdate, cnNorth);
cmdNorth.Parameters.Add("@CustomerID", SqlDbType.NChar);
cmdNorth.Parameters.Add("@CompanyName", SqlDbType.NChar);
cmdNorth.Parameters.Add("@Address", SqlDbType.NChar);
cmdNorth.Parameters.Add("@City", SqlDbType.NChar);
cmdNorth.Parameters.Add("@OrigCustomerID", SqlDbType.NChar);
cmdNorth.Parameters[0].Value = cm.CustId;
cmdNorth.Parameters[1].Value = cm.ContactName;
cmdNorth.Parameters[2].Value = cm.CustAddress;
cmdNorth.Parameters[3].Value = cm.City;
cmdNorth.Parameters[4].Value = old.CustId;
// 3. Th c thi l nh
cmdNorth.Connection.Open();
int kq = cmdNorth.ExecuteNonQuery();
if (kq > 0)
{
MessageBox.Show("C p nh t thành công!");
//G i l i phương th c Load d li u Ví d 1
}
else
Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET
Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 5
MessageBox.Show("L i!");
cmdNorth.Connection.Close();
}
Ví d 5: Xóa dòng ư c ch n
private void cmdDelete_Click(object sender, System.EventArgs e)
{
if (lsvCustomer.SelectedItems.Count == 0)
return;
// L y thông tin v i tư ng ang ư c ch n
CustomerInfo cm = lsvCustomer.SelectedItems[0].Tag as CustomerInfo;
// 1. i tư ng k t n i
string strConn = "server=(local); Database = Northwind; uid=sa; pwd=;"
SqlConnection cnNorth = new SqlConnection(strConn);
// 2. Câu l nh th c thi
string sqlUpdate ="Delete from Customers where CustomerID=@CustomerID";
SqlCommand cmdNorth = new SqlCommand(sqlUpdate, cnNorth);
cmdNorth.Parameters.Add("@CustomerID", SqlDbType.NChar);
cmdNorth.Parameters[0].Value = cm.CustId;
// 3. Th c thi l nh
cmdNorth.Connection.Open();
int kq = cmdNorth.ExecuteNonQuery();
if (kq > 0)
{
MessageBox.Show("C p nh t thành công!");
//G i l i phương th c Load d li u Ví d 1
}
else
MessageBox.Show("L i!");
cmdNorth.Connection.Close();
}
3. Bài t p
Bài 1: Thi t k CSDL và Xây d ng ng d ng qu n lý thông tin khách hàng v i các yêu c u
sau:
- Form ăng nh p: ăng nh p trư c khi s d ng ng d ng
- Ki m tra d li u r ng trư c khi th c
hi n vi c x lý ăng nh p
- N u ăng nh p thành công thì cho phép
s d ng ph n Qu n lý
- Form Qu n lý: có giao di n như hình bên dư i, form này xem, thêm, s a, xóa thông tin
c a khách hàng. Các thông tin c n qu n lý bao g m: mã s , h tên, ngày sinh, a ch ,
i n tho i, email, hình nh
o Thông tin khách hàng s hi n th ngay khi vào form Qu n lý
o Thêm m i: thêm m i 1 khách hàng vào CSDL
o C p nh t: Ch nh s a thông tin 1 khách hàng trong CSDL
o Xóa: Xóa thông tin m t khách hàng
Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET
Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 6
Ph n 2. K t n i không thư ng xuyên (Disconnected Architecture)
1. Các bư c th c hi n
Bư c 1: S d ng Connection k t n i n cơ s d li u
Bư c 2: T o i tư ng DataSet
Bư c 3: T o i tư ng DataAdapter và các câu l nh th c thi trên d li u
Bư c 4: d li u vào DataSet
Bư c 5: Tương tác, x lý d li u trên DataSet
Bư c 6: Lưu vào CSDL
2. Ví d m u
Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET
Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 7
public partial class Form1 : Form
{
private DataSet ds;
private SqlConnection objConn;
private SqlDataAdapter objDa;
private string STRCONN = "Server=.;Database=BMS;uid=sa;pwd=;";
public Form1()
{
InitializeComponent();
}
private void loadData()
{
objConn = new SqlConnection(STRCONN);
ds = new DataSet();
objDa = new SqlDataAdapter("SELECT * FROM Books", objConn);
//T o các câu l nh Insert, Update, Delete t ng
SqlCommandBuilder cmb = new SqlCommandBuilder(objDa);
objDa.Fill(ds, "Books");
//Do du lieu len DataGridView
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Books";
//Bind du lieu len TextBox
txtID.DataBindings.Add("Text", ds, "Books.BookID");
txtTypeID.DataBindings.Add("Text", ds, "Books.TypeID");
txtTitle.DataBindings.Add("Text", ds, "Books.Title");
txtPublisher.DataBindings.Add("Text", ds, "Books.Publisher");
txtAuthor.DataBindings.Add("Text", ds, "Books.Author");
txtPrice.DataBindings.Add("Text", ds, "Books.Price");
}
private void Form1_Load(object sender, EventArgs e)
{
loadData();
}
private void cmdDelete_Click(object sender, EventArgs e)
{
int i = (int)this.BindingContext[ds, "Books"].Position;
ds.Tables[0].Rows[i].Delete();
objDa.Update(ds, "Books");
}
private void cmdAddNew_Click(object sender, EventArgs e)
{
txtID.Enabled = true;
txtTypeID.Enabled = true;
txtTitle.Enabled = true;
txtAuthor.Enabled = true;
txtPublisher.Enabled = true;
txtPrice.Enabled = true;
this.BindingContext[ds, "Books"].AddNew();
}
private void cmdUpdate_Click(object sender, EventArgs e)
{
//txtID.Enabled = true;
txtTypeID.Enabled = true;
Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET
Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 8
txtTitle.Enabled = true;
txtAuthor.Enabled = true;
txtPublisher.Enabled = true;
txtPrice.Enabled = true;
}
private void cmdSave_Click(object sender, EventArgs e)
{
objDa.Update(ds,"Books");
}
}
3. M t s o n code m u
// Get current Rowposition
CurrencyManager cm = (CurrencyManager)this.BindingContext[ds,"Books"];
long rowPosition = (long)cm.Position;
// Combobox Databinding
cboTypeID.DataSource = ds;
cboTypeID.DisplayMember = "Books.TypeName";
cboTypeID.ValueMember = "Books.TypeID";
// Position to prev Record in Customer
private void btnPrev_Click(object sender, System.EventArgs e)
{
if (this.BindingContext[ds,"Books"].Position > 0)
{
this.BindingContext[ds,"Books"].Position--;
}
}
// Position to next Record in Customer
private void btnNext_Click(object sender, System.EventArgs e)
{
CurrencyManager cm = (CurrencyManager)this.BindingContext[ds,"Books"];
if (cm.Position < cm.Count - 1)
{
cm.Position++;
}
}
4. Bài t p
S d ng Disconnected Architecture làm l i bài t p Ph n 1

More Related Content

Viewers also liked

Caribatars
Caribatars Caribatars
Caribatars
uttcustdev
 
Resume satyendra
Resume satyendraResume satyendra
Resume satyendra
Vijay Singh
 
Basics of r commands
Basics of r commandsBasics of r commands
Basics of r commands
kksijo
 
Música do pas - Monólogo ao pé do ouvido
Música do pas - Monólogo ao pé do ouvidoMúsica do pas - Monólogo ao pé do ouvido
Música do pas - Monólogo ao pé do ouvido
Sthefanie Vieira
 
642402 634249935653553750
642402 634249935653553750642402 634249935653553750
642402 634249935653553750
55555555559999999999
 
Macc nut swot
Macc nut swotMacc nut swot
Macc nut swot
fishball5
 
Animals
AnimalsAnimals
Animals
angiemezar
 
L auge de_l_artesania
L auge de_l_artesaniaL auge de_l_artesania
L auge de_l_artesaniamb9258
 
Algebra Foundations Series- 1.2 Order of Operations
Algebra Foundations Series- 1.2 Order of OperationsAlgebra Foundations Series- 1.2 Order of Operations
Algebra Foundations Series- 1.2 Order of Operations
Dee Black
 
Osidna
OsidnaOsidna
Cruise city break 2013 thursday
Cruise city break 2013 thursdayCruise city break 2013 thursday
Cruise city break 2013 thursday
Shannon Collins
 
Used car parts : The Smart Choice
Used car parts : The Smart ChoiceUsed car parts : The Smart Choice
Used car parts : The Smart Choice
Used cars Inc
 
Powering the People
Powering the PeoplePowering the People
Powering the People
TheElectricGeneration
 
Windows 7,8,10
Windows 7,8,10Windows 7,8,10
Windows 7,8,10
Sthefanie Vieira
 

Viewers also liked (16)

Caribatars
Caribatars Caribatars
Caribatars
 
Resume satyendra
Resume satyendraResume satyendra
Resume satyendra
 
Basics of r commands
Basics of r commandsBasics of r commands
Basics of r commands
 
Música do pas - Monólogo ao pé do ouvido
Música do pas - Monólogo ao pé do ouvidoMúsica do pas - Monólogo ao pé do ouvido
Música do pas - Monólogo ao pé do ouvido
 
642402 634249935653553750
642402 634249935653553750642402 634249935653553750
642402 634249935653553750
 
Macc nut swot
Macc nut swotMacc nut swot
Macc nut swot
 
Animals
AnimalsAnimals
Animals
 
L auge de_l_artesania
L auge de_l_artesaniaL auge de_l_artesania
L auge de_l_artesania
 
Algebra Foundations Series- 1.2 Order of Operations
Algebra Foundations Series- 1.2 Order of OperationsAlgebra Foundations Series- 1.2 Order of Operations
Algebra Foundations Series- 1.2 Order of Operations
 
gigko v v
gigko v vgigko v v
gigko v v
 
Osidna
OsidnaOsidna
Osidna
 
Cruise city break 2013 thursday
Cruise city break 2013 thursdayCruise city break 2013 thursday
Cruise city break 2013 thursday
 
Aleluia
AleluiaAleluia
Aleluia
 
Used car parts : The Smart Choice
Used car parts : The Smart ChoiceUsed car parts : The Smart Choice
Used car parts : The Smart Choice
 
Powering the People
Powering the PeoplePowering the People
Powering the People
 
Windows 7,8,10
Windows 7,8,10Windows 7,8,10
Windows 7,8,10
 

Similar to Hdth.chuong5 ado.netv2.0

Asp
AspAsp
Asp
thinhtu
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04. .
 
De cuongthuchanhct221 hk2_1920_n1
De cuongthuchanhct221 hk2_1920_n1De cuongthuchanhct221 hk2_1920_n1
De cuongthuchanhct221 hk2_1920_n1
Nahudi Nguyễn
 
Web Services
Web ServicesWeb Services
Web Servicesask bills
 
7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)TI Anh
 
Cach su dung databinding
Cach su dung databindingCach su dung databinding
Cach su dung databindingtruong le hung
 
Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Dũng Đinh
 
Mô hình hóa yêu cầu
Mô hình hóa yêu cầuMô hình hóa yêu cầu
Mô hình hóa yêu cầuNguyen Tran
 
Meo lap trinh_tech24.vn
Meo lap trinh_tech24.vnMeo lap trinh_tech24.vn
Meo lap trinh_tech24.vnphiagame
 
Trần Anh Khoa - Kautilya và Powershell trong kỹ thuật tấn công tiếp cận
Trần Anh Khoa - Kautilya và Powershelltrong kỹ thuật tấn công tiếp cậnTrần Anh Khoa - Kautilya và Powershelltrong kỹ thuật tấn công tiếp cận
Trần Anh Khoa - Kautilya và Powershell trong kỹ thuật tấn công tiếp cận
Security Bootcamp
 
Cau hoi trac nghiem lt nc (1)
Cau hoi trac nghiem lt nc (1)Cau hoi trac nghiem lt nc (1)
Cau hoi trac nghiem lt nc (1)
Pharmacist Ctump
 
Linq2 sql
Linq2 sqlLinq2 sql
Linq2 sql
Dũng Đinh
 
Net06 asp.net applications & state management
Net06 asp.net applications & state managementNet06 asp.net applications & state management
Net06 asp.net applications & state management
hoangnguyentien
 

Similar to Hdth.chuong5 ado.netv2.0 (20)

Asp
AspAsp
Asp
 
access
accessaccess
access
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04
 
De cuongthuchanhct221 hk2_1920_n1
De cuongthuchanhct221 hk2_1920_n1De cuongthuchanhct221 hk2_1920_n1
De cuongthuchanhct221 hk2_1920_n1
 
Cach su dung data reader
Cach su dung data readerCach su dung data reader
Cach su dung data reader
 
Web Services
Web ServicesWeb Services
Web Services
 
7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)
 
Cach su dung databinding
Cach su dung databindingCach su dung databinding
Cach su dung databinding
 
Bai th 03
Bai th 03Bai th 03
Bai th 03
 
Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1
 
Mô hình hóa yêu cầu
Mô hình hóa yêu cầuMô hình hóa yêu cầu
Mô hình hóa yêu cầu
 
Meo lap trinh_tech24.vn
Meo lap trinh_tech24.vnMeo lap trinh_tech24.vn
Meo lap trinh_tech24.vn
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
Trần Anh Khoa - Kautilya và Powershell trong kỹ thuật tấn công tiếp cận
Trần Anh Khoa - Kautilya và Powershelltrong kỹ thuật tấn công tiếp cậnTrần Anh Khoa - Kautilya và Powershelltrong kỹ thuật tấn công tiếp cận
Trần Anh Khoa - Kautilya và Powershell trong kỹ thuật tấn công tiếp cận
 
Cau hoi trac nghiem lt nc (1)
Cau hoi trac nghiem lt nc (1)Cau hoi trac nghiem lt nc (1)
Cau hoi trac nghiem lt nc (1)
 
User Control
User ControlUser Control
User Control
 
Linq2 sql
Linq2 sqlLinq2 sql
Linq2 sql
 
Net06 asp.net applications & state management
Net06 asp.net applications & state managementNet06 asp.net applications & state management
Net06 asp.net applications & state management
 
Lap trinhvba
Lap trinhvbaLap trinhvba
Lap trinhvba
 
Ktlt lab full
Ktlt lab fullKtlt lab full
Ktlt lab full
 

Recently uploaded

CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...
CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...
CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...
lamluanvan.net Viết thuê luận văn
 
NHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦN
NHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦNNHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦN
NHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦN
lamluanvan.net Viết thuê luận văn
 
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdfDANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
thanhluan21
 
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
Nguyen Thanh Tu Collection
 
Bài tập chương 5. Năng lượng phản ứng.docx
Bài tập chương 5. Năng lượng phản ứng.docxBài tập chương 5. Năng lượng phản ứng.docx
Bài tập chương 5. Năng lượng phản ứng.docx
gorse871
 
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
Nguyen Thanh Tu Collection
 
tiếng việt dành cho sinh viên ngoại ngữ h
tiếng việt dành cho sinh viên ngoại ngữ htiếng việt dành cho sinh viên ngoại ngữ h
tiếng việt dành cho sinh viên ngoại ngữ h
huynhanhthu082007
 
Giải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCM
Giải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCMGiải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCM
Giải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCM
LinhChu679649
 
kltn_Nâng Cao Chất Lượng Đội Ngũ Công Chức Cấp Phường Trên Địa Bàn Quận Hà Đô...
kltn_Nâng Cao Chất Lượng Đội Ngũ Công Chức Cấp Phường Trên Địa Bàn Quận Hà Đô...kltn_Nâng Cao Chất Lượng Đội Ngũ Công Chức Cấp Phường Trên Địa Bàn Quận Hà Đô...
kltn_Nâng Cao Chất Lượng Đội Ngũ Công Chức Cấp Phường Trên Địa Bàn Quận Hà Đô...
Luận Văn Uy Tín
 
CHIẾN LƯỢC DẠY TIẾNG ANH THEO CHƯƠNG TRÌNH GD 2018 CHO HỌC SINH TRUNG BÌNH YẾ...
CHIẾN LƯỢC DẠY TIẾNG ANH THEO CHƯƠNG TRÌNH GD 2018 CHO HỌC SINH TRUNG BÌNH YẾ...CHIẾN LƯỢC DẠY TIẾNG ANH THEO CHƯƠNG TRÌNH GD 2018 CHO HỌC SINH TRUNG BÌNH YẾ...
CHIẾN LƯỢC DẠY TIẾNG ANH THEO CHƯƠNG TRÌNH GD 2018 CHO HỌC SINH TRUNG BÌNH YẾ...
lamluanvan.net Viết thuê luận văn
 
Bài 4. Khảo sát mạch dao động điện từ.doc
Bài 4. Khảo sát mạch dao động điện từ.docBài 4. Khảo sát mạch dao động điện từ.doc
Bài 4. Khảo sát mạch dao động điện từ.doc
phamvanchinhlqd
 
Ngon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptx
Ngon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptxNgon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptx
Ngon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptx
linhlevietdav
 
Tóm tắt Tư tưởng Hồ Chí Minhhhhhhhhhhhhh
Tóm tắt Tư tưởng Hồ Chí MinhhhhhhhhhhhhhTóm tắt Tư tưởng Hồ Chí Minhhhhhhhhhhhhh
Tóm tắt Tư tưởng Hồ Chí Minhhhhhhhhhhhhh
nnguyenthao204
 
khoaluan_Chính Sách Tiền Lương Tại Công Ty Cổ Phần Đầu Tư Hải Đường, Tỉnh Nam...
khoaluan_Chính Sách Tiền Lương Tại Công Ty Cổ Phần Đầu Tư Hải Đường, Tỉnh Nam...khoaluan_Chính Sách Tiền Lương Tại Công Ty Cổ Phần Đầu Tư Hải Đường, Tỉnh Nam...
khoaluan_Chính Sách Tiền Lương Tại Công Ty Cổ Phần Đầu Tư Hải Đường, Tỉnh Nam...
Luận Văn Uy Tín
 
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
NamNguynHi23
 
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Bồi Dưỡng HSG Toán Lớp 3
 
Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...
Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...
Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...
lamluanvan.net Viết thuê luận văn
 
vật lý 1 k23 cuối kì c10-11- Nam Lê.pptx
vật lý 1 k23 cuối kì c10-11- Nam Lê.pptxvật lý 1 k23 cuối kì c10-11- Nam Lê.pptx
vật lý 1 k23 cuối kì c10-11- Nam Lê.pptx
LinhTrn115148
 
TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...
TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...
TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...
Nguyen Thanh Tu Collection
 
Diễn giải Tâm lý - Chiêm tinh Thầy Minh Tuệ
Diễn giải Tâm lý - Chiêm tinh Thầy Minh TuệDiễn giải Tâm lý - Chiêm tinh Thầy Minh Tuệ
Diễn giải Tâm lý - Chiêm tinh Thầy Minh Tuệ
Little Daisy
 

Recently uploaded (20)

CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...
CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...
CHỮ “TRÍ” THEO TƯ TƯỞNG NHO GIÁO VÀ Ý NGHĨA TRONG ĐỔI MỚI GIAÓ DỤC Ở VIỆT NAM...
 
NHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦN
NHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦNNHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦN
NHO GIÁO VÀ ẢNH HƯỞNG ĐẾN ĐỜI SỐNG TINH THẦN
 
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdfDANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
DANH SÁCH XÉT TUYỂN SỚM_NĂM 2023_học ba DPY.pdf
 
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
BÀI TẬP DẠY THÊM HÓA HỌC LỚP 12 - CẢ NĂM - THEO FORM THI MỚI BGD 2025 (DÙNG C...
 
Bài tập chương 5. Năng lượng phản ứng.docx
Bài tập chương 5. Năng lượng phản ứng.docxBài tập chương 5. Năng lượng phản ứng.docx
Bài tập chương 5. Năng lượng phản ứng.docx
 
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
TÀI LIỆU DẠY THÊM HÓA HỌC 12 - SÁCH MỚI (BẢN HS+GV) (FORM BÀI TẬP 2025 CHUNG ...
 
tiếng việt dành cho sinh viên ngoại ngữ h
tiếng việt dành cho sinh viên ngoại ngữ htiếng việt dành cho sinh viên ngoại ngữ h
tiếng việt dành cho sinh viên ngoại ngữ h
 
Giải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCM
Giải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCMGiải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCM
Giải phẫu sinh lý Hệ sinh sản DH Y duoc TPHCM
 
kltn_Nâng Cao Chất Lượng Đội Ngũ Công Chức Cấp Phường Trên Địa Bàn Quận Hà Đô...
kltn_Nâng Cao Chất Lượng Đội Ngũ Công Chức Cấp Phường Trên Địa Bàn Quận Hà Đô...kltn_Nâng Cao Chất Lượng Đội Ngũ Công Chức Cấp Phường Trên Địa Bàn Quận Hà Đô...
kltn_Nâng Cao Chất Lượng Đội Ngũ Công Chức Cấp Phường Trên Địa Bàn Quận Hà Đô...
 
CHIẾN LƯỢC DẠY TIẾNG ANH THEO CHƯƠNG TRÌNH GD 2018 CHO HỌC SINH TRUNG BÌNH YẾ...
CHIẾN LƯỢC DẠY TIẾNG ANH THEO CHƯƠNG TRÌNH GD 2018 CHO HỌC SINH TRUNG BÌNH YẾ...CHIẾN LƯỢC DẠY TIẾNG ANH THEO CHƯƠNG TRÌNH GD 2018 CHO HỌC SINH TRUNG BÌNH YẾ...
CHIẾN LƯỢC DẠY TIẾNG ANH THEO CHƯƠNG TRÌNH GD 2018 CHO HỌC SINH TRUNG BÌNH YẾ...
 
Bài 4. Khảo sát mạch dao động điện từ.doc
Bài 4. Khảo sát mạch dao động điện từ.docBài 4. Khảo sát mạch dao động điện từ.doc
Bài 4. Khảo sát mạch dao động điện từ.doc
 
Ngon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptx
Ngon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptxNgon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptx
Ngon_ngu_hoc_doi_chieu Các phạm trù cơ bản.pptx
 
Tóm tắt Tư tưởng Hồ Chí Minhhhhhhhhhhhhh
Tóm tắt Tư tưởng Hồ Chí MinhhhhhhhhhhhhhTóm tắt Tư tưởng Hồ Chí Minhhhhhhhhhhhhh
Tóm tắt Tư tưởng Hồ Chí Minhhhhhhhhhhhhh
 
khoaluan_Chính Sách Tiền Lương Tại Công Ty Cổ Phần Đầu Tư Hải Đường, Tỉnh Nam...
khoaluan_Chính Sách Tiền Lương Tại Công Ty Cổ Phần Đầu Tư Hải Đường, Tỉnh Nam...khoaluan_Chính Sách Tiền Lương Tại Công Ty Cổ Phần Đầu Tư Hải Đường, Tỉnh Nam...
khoaluan_Chính Sách Tiền Lương Tại Công Ty Cổ Phần Đầu Tư Hải Đường, Tỉnh Nam...
 
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
[NBV]-CHUYÊN ĐỀ 3. GTLN-GTNN CỦA HÀM SỐ (CÓ ĐÁP ÁN CHI TIẾT).pdf
 
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
Tuyển tập 9 chuyên đề bồi dưỡng Toán lớp 5 cơ bản và nâng cao ôn thi vào lớp ...
 
Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...
Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...
Những khó khăn của sinh viên năm nhất Học viện Hành chính Quốc gia trong quá ...
 
vật lý 1 k23 cuối kì c10-11- Nam Lê.pptx
vật lý 1 k23 cuối kì c10-11- Nam Lê.pptxvật lý 1 k23 cuối kì c10-11- Nam Lê.pptx
vật lý 1 k23 cuối kì c10-11- Nam Lê.pptx
 
TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...
TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...
TỔNG HỢP 135 CÂU HỎI DI TRUYỀN PHÂN TỬ LUYỆN THI HỌC SINH GIỎI THPT MÔN SINH ...
 
Diễn giải Tâm lý - Chiêm tinh Thầy Minh Tuệ
Diễn giải Tâm lý - Chiêm tinh Thầy Minh TuệDiễn giải Tâm lý - Chiêm tinh Thầy Minh Tuệ
Diễn giải Tâm lý - Chiêm tinh Thầy Minh Tuệ
 

Hdth.chuong5 ado.netv2.0

  • 1. Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 1 CHƯƠNG 5 – ADO.NET T ng d ng, ta có th k t n i và thao tác v i cơ s d li u b ng 2 phương pháp sau: 1. K t n i thư ng xuyên 2. K t n i không thư ng xuyên Ph n 1. K t n i thư ng xuyên 1. Các bư c th c hi n Bư c 1: S d ng Connection k t n i n cơ s d li u Bư c 2: Thi t l p câu l nh th c thi: Insert, Select, Update, Delete Bư c 3: Th c hi n l nh • M k t n i • Th c thi câu l nh, x lý d li u tr v • óng k t n i 2. Ví d m u Thi t k giao di n g m các ph n như hình sau: - Khi Load form các d li u t b ng Customers trong CSDL Northwind c a SQL Server 2000 s ư c hi n th trên ListView và DataGridView - Khi ch n 1 dòng trên ListView ho c DataGridView, d li u c a dòng tương ng s hi n th trên các TextBox - Khi click vào nút Insert, d li u trong các Textbox ư c thêm vào cơ s d li u - Khi click vào nút Update, record ư c ch n s ư c ch nh s a và c p nh t vào CSDL - Khi click nút Delete, record ư c ch n s b xóa kh i CSDL
  • 2. Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 2 Ví d 1: c d li u t b ng Customers trong CSDL Northwind c a SQL Server 2000 và hi n th lên ListView và DataGridView // 1. Thi t l p k t n i string strConn = "server=.; Database = Northwind; uid=sa; pwd=;"; SqlConnection cnNorth = new SqlConnection(strConn); // 2. Thi t l p câu l nh string sqlSelect = "select CustomerID, CompanyName, Address, City from Customers"; SqlCommand cmdNorth = new SqlCommand(sqlSelect, cnNorth); cmdNorth.Connection.Open(); // 3. Th c hi n l nh SqlDataReader reader = cmdNorth.ExecuteReader(); // L y d li u hi n th , x lý... qua i tư ng Reader // Xem ví d 1.1 ho c ví d 1.2 // … // óng k t n i cmdNorth.Connection.Close(); Ví d 1.1: o n chương trình sau mô t vi c c d li u t i tư ng reader và hi n th lên ListView CustomerInfo cm; // Xem ví d 1.3 while (reader.Read()) { cm = new CustomerInfo(); cm.CustId = reader.GetString(0); cm.ContactName = reader.GetString(1); if (reader.IsDBNull(2)) cm.CustAddress = ""; else cm.CustAddress =reader.GetString(2); if (reader.IsDBNull(3)) cm.City = ""; else cm.City =reader.GetString(3); ListViewItem lvItem = new ListViewItem(cm.CustId); lvItem.SubItems.Add(cm.ContactName); lvItem.SubItems.Add(cm.CustAddress); lvItem.SubItems.Add(cm.City); lvItem.Tag = cm; lsvCustomer.Items.Add(lvItem); } Ví d 1.2: o n chương trình sau mô t vi c c d li u t i tư ng reader và hi n th lên DataGridView ArrayList list = new ArrayList(); CustomerInfo cm; // Xem ví d 1.3 while (reader.Read()) { cm = new CustomerInfo(); cm.CustId = reader.GetString(0); cm.ContactName = reader.GetString(1); if (reader.IsDBNull(2)) cm.CustAddress = ""; else cm.CustAddress =reader.GetString(2); if (reader.IsDBNull(3)) cm.City = ""; else cm.City =reader.GetString(3); list.Add(cm);
  • 3. Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 3 } dataGridView1.DataSource = list; Ví d 1.3: CustomerInfo là l p mô t các thông tin v i tư ng Customer. CustomerInfo ư c vi t như sau: public class CustomerInfo { string custId; string contactName; string custAddress; string city; public CustomerInfo() { } public CustomerInfo(string custId, string contactName, string custAddress, string city) { this.custId = custId; this.contactName = contactName; this.custAddress = custAddress; this.city = city; } public string CustId { get {return custId;} set {custId = value;} } public string ContactName { get {return contactName;} set {contactName = value;} } public string CustAddress { get {return custAddress;} set {custAddress = value;} } public string City { get {return city;} set {city = value;} } } Ví d 2: L y d li u t các Textbox: txtID, txtName, txt ddress và txtCity lưu vào Database và c p nh t m i d li u hi n th trên form private void cmdInsert_Click(object sender, System.EventArgs e) { // 1. K t n i string strConn = "server=(local); Database = Northwind; uid=sa; pwd=;"; SqlConnection cnNorth = new SqlConnection(strConn); // 2. Thi t t câu l nh th c thi string sqlInsert= "insert into Customers(CustomerID, " + "CompanyName, Address, City) values(@CustomerID, @CompanyName, "+ "@Address, @City)"; SqlCommand cmdNorth = new SqlCommand(sqlInsert, cnNorth); cmdNorth.Parameters.Add("@CustomerID", SqlDbType.NChar); cmdNorth.Parameters.Add("@CompanyName", SqlDbType.NChar); cmdNorth.Parameters.Add("@Address", SqlDbType.NChar); cmdNorth.Parameters.Add("@City", SqlDbType.NChar); cmdNorth.Parameters[0].Value = txtID.Text; cmdNorth.Parameters[1].Value = txtName.Text; cmdNorth.Parameters[2].Value = txtAddress.Text;
  • 4. Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 4 cmdNorth.Parameters[3].Value = txtCity.Text; // 3. Th c thi l nh cmdNorth.Connection.Open(); int kq = cmdNorth.ExecuteNonQuery(); if (kq > 0) { MessageBox.Show("D li u ã c p nh t!"); // G i l i hàm Load d li u Ví d 1 } else { MessageBox.Show("Có l i xãy ra!"); } cmdNorth.Connection.Close(); } Ví d 3: Ch n 1 dòng trên ListView d li u tương ng s hi n th trên các TextBox. private void lsvCustomer_SelectedIndexChanged(object sender, System.EventArgs e) { if (lsvCustomer.SelectedItems.Count == 0) return; CustomerInfo cm = lvCustomer.SelectedItems[0].Tag as CustomerInfo; txtID.Text = cm.CustId; txtName.Text = cm.ContactName; txtAddress.Text = cm.CustAddress; txtCity.Text = cm.City; } Ví d 4: Lưu d li u sau khi ã hi u ch nh trên TextBox vào CSDL private void cmdUpdate_Click(object sender, System.EventArgs e) { if (lsvCustomer.SelectedItems.Count == 0) return; // L y thông tin v i tư ng ang ư c ch n CustomerInfo old = lsvCustomer.SelectedItems[0].Tag as CustomerInfo; // L y thông tin sau khi ã ch nh s a CustomerInfo cm = new CustomerInfo(txtID.Text, txtName.Text, txtAddress.Text, txtCity.Text); // 1. i tư ng k t n i string strConn = "server=(local); Database = Northwind; uid=sa; pwd=;" SqlConnection cnNorth = new SqlConnection(strConn); // 2. Câu l nh th c thi string sqlUpdate ="update Customers set CustomerID = "+ "@CustomerID, CompanyName = @CompanyName, Address = @Address, "+ "City = @City where CustomerID = @OrigCustomerID"; SqlCommand cmdNorth = new SqlCommand(sqlUpdate, cnNorth); cmdNorth.Parameters.Add("@CustomerID", SqlDbType.NChar); cmdNorth.Parameters.Add("@CompanyName", SqlDbType.NChar); cmdNorth.Parameters.Add("@Address", SqlDbType.NChar); cmdNorth.Parameters.Add("@City", SqlDbType.NChar); cmdNorth.Parameters.Add("@OrigCustomerID", SqlDbType.NChar); cmdNorth.Parameters[0].Value = cm.CustId; cmdNorth.Parameters[1].Value = cm.ContactName; cmdNorth.Parameters[2].Value = cm.CustAddress; cmdNorth.Parameters[3].Value = cm.City; cmdNorth.Parameters[4].Value = old.CustId; // 3. Th c thi l nh cmdNorth.Connection.Open(); int kq = cmdNorth.ExecuteNonQuery(); if (kq > 0) { MessageBox.Show("C p nh t thành công!"); //G i l i phương th c Load d li u Ví d 1 } else
  • 5. Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 5 MessageBox.Show("L i!"); cmdNorth.Connection.Close(); } Ví d 5: Xóa dòng ư c ch n private void cmdDelete_Click(object sender, System.EventArgs e) { if (lsvCustomer.SelectedItems.Count == 0) return; // L y thông tin v i tư ng ang ư c ch n CustomerInfo cm = lsvCustomer.SelectedItems[0].Tag as CustomerInfo; // 1. i tư ng k t n i string strConn = "server=(local); Database = Northwind; uid=sa; pwd=;" SqlConnection cnNorth = new SqlConnection(strConn); // 2. Câu l nh th c thi string sqlUpdate ="Delete from Customers where CustomerID=@CustomerID"; SqlCommand cmdNorth = new SqlCommand(sqlUpdate, cnNorth); cmdNorth.Parameters.Add("@CustomerID", SqlDbType.NChar); cmdNorth.Parameters[0].Value = cm.CustId; // 3. Th c thi l nh cmdNorth.Connection.Open(); int kq = cmdNorth.ExecuteNonQuery(); if (kq > 0) { MessageBox.Show("C p nh t thành công!"); //G i l i phương th c Load d li u Ví d 1 } else MessageBox.Show("L i!"); cmdNorth.Connection.Close(); } 3. Bài t p Bài 1: Thi t k CSDL và Xây d ng ng d ng qu n lý thông tin khách hàng v i các yêu c u sau: - Form ăng nh p: ăng nh p trư c khi s d ng ng d ng - Ki m tra d li u r ng trư c khi th c hi n vi c x lý ăng nh p - N u ăng nh p thành công thì cho phép s d ng ph n Qu n lý - Form Qu n lý: có giao di n như hình bên dư i, form này xem, thêm, s a, xóa thông tin c a khách hàng. Các thông tin c n qu n lý bao g m: mã s , h tên, ngày sinh, a ch , i n tho i, email, hình nh o Thông tin khách hàng s hi n th ngay khi vào form Qu n lý o Thêm m i: thêm m i 1 khách hàng vào CSDL o C p nh t: Ch nh s a thông tin 1 khách hàng trong CSDL o Xóa: Xóa thông tin m t khách hàng
  • 6. Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 6 Ph n 2. K t n i không thư ng xuyên (Disconnected Architecture) 1. Các bư c th c hi n Bư c 1: S d ng Connection k t n i n cơ s d li u Bư c 2: T o i tư ng DataSet Bư c 3: T o i tư ng DataAdapter và các câu l nh th c thi trên d li u Bư c 4: d li u vào DataSet Bư c 5: Tương tác, x lý d li u trên DataSet Bư c 6: Lưu vào CSDL 2. Ví d m u
  • 7. Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 7 public partial class Form1 : Form { private DataSet ds; private SqlConnection objConn; private SqlDataAdapter objDa; private string STRCONN = "Server=.;Database=BMS;uid=sa;pwd=;"; public Form1() { InitializeComponent(); } private void loadData() { objConn = new SqlConnection(STRCONN); ds = new DataSet(); objDa = new SqlDataAdapter("SELECT * FROM Books", objConn); //T o các câu l nh Insert, Update, Delete t ng SqlCommandBuilder cmb = new SqlCommandBuilder(objDa); objDa.Fill(ds, "Books"); //Do du lieu len DataGridView dataGridView1.DataSource = ds; dataGridView1.DataMember = "Books"; //Bind du lieu len TextBox txtID.DataBindings.Add("Text", ds, "Books.BookID"); txtTypeID.DataBindings.Add("Text", ds, "Books.TypeID"); txtTitle.DataBindings.Add("Text", ds, "Books.Title"); txtPublisher.DataBindings.Add("Text", ds, "Books.Publisher"); txtAuthor.DataBindings.Add("Text", ds, "Books.Author"); txtPrice.DataBindings.Add("Text", ds, "Books.Price"); } private void Form1_Load(object sender, EventArgs e) { loadData(); } private void cmdDelete_Click(object sender, EventArgs e) { int i = (int)this.BindingContext[ds, "Books"].Position; ds.Tables[0].Rows[i].Delete(); objDa.Update(ds, "Books"); } private void cmdAddNew_Click(object sender, EventArgs e) { txtID.Enabled = true; txtTypeID.Enabled = true; txtTitle.Enabled = true; txtAuthor.Enabled = true; txtPublisher.Enabled = true; txtPrice.Enabled = true; this.BindingContext[ds, "Books"].AddNew(); } private void cmdUpdate_Click(object sender, EventArgs e) { //txtID.Enabled = true; txtTypeID.Enabled = true;
  • 8. Hư ng d n th c hành Winforms v i C# Chương 5: ADO.NET Hue-Aptech | Tr n Văn Long – Email: tvlongsp@gmail.com Trang 8 txtTitle.Enabled = true; txtAuthor.Enabled = true; txtPublisher.Enabled = true; txtPrice.Enabled = true; } private void cmdSave_Click(object sender, EventArgs e) { objDa.Update(ds,"Books"); } } 3. M t s o n code m u // Get current Rowposition CurrencyManager cm = (CurrencyManager)this.BindingContext[ds,"Books"]; long rowPosition = (long)cm.Position; // Combobox Databinding cboTypeID.DataSource = ds; cboTypeID.DisplayMember = "Books.TypeName"; cboTypeID.ValueMember = "Books.TypeID"; // Position to prev Record in Customer private void btnPrev_Click(object sender, System.EventArgs e) { if (this.BindingContext[ds,"Books"].Position > 0) { this.BindingContext[ds,"Books"].Position--; } } // Position to next Record in Customer private void btnNext_Click(object sender, System.EventArgs e) { CurrencyManager cm = (CurrencyManager)this.BindingContext[ds,"Books"]; if (cm.Position < cm.Count - 1) { cm.Position++; } } 4. Bài t p S d ng Disconnected Architecture làm l i bài t p Ph n 1