cs06
TRANSCRIPT
![Page 1: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/1.jpg)
Bài giảng môn học
Lập trình Windows Form v ới C#
Bài 7: ADO.NET
Lương Tr ần Hy Hi ến
FIT, HCMUP
![Page 2: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/2.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Nội dung
�ADO.NET
�Sơ lược l ịch sử phát tri ển
�Kiến trúc ADO.NET
� .NET Data Provider
�DataSet
�Hỏi & Đáp
2
![Page 3: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/3.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Giới thi ệu ADO.NET
�ActiveX Data Object .NET (ADO.NET)
– Công nghệ của MS
– Phát triển từ nền tảng ADO
– Cung cấp các lớp đối tượng và hàm thư viện phục vụ cho việc kết nối và xử lý dữ liệu
.NET Application
ADO.NET
3
![Page 4: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/4.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Giới thi ệu ADO.NET
�Mô hình .NET FrameworkMicrosoft .NET Framework
Common Language Runtime
Base Classes
Web Services User Interface
Data and XML
ADO.NET XML ... ...
4
![Page 5: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/5.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Nội dung
• ADO.NET
�Sơ lược l ịch sử phát tri ển
�Kiến trúc ADO.NET
� .NET Data Provider
�DataSet
�Hỏi & Đáp
5
![Page 6: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/6.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Sơ lược l ịch sử phát tri ển
� Native API
ODBC
Driver
Driver
Driver
Application
Application
Database
Database
DB API
DB API
DB API
ODBC API
DB API
DB API
DB API
� Open DataBase Connectivity
6
![Page 7: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/7.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Sơ lược l ịch sử phát tri ển (cont)
� OLEDB và ADO
ADO
OLE DB
Application
Non-Relational Data
Relational Data
ODBC
Driver
Driver
Driver
Provider
Provider
Provider
Provider
OLE: Object Linking and Embedding
7
![Page 8: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/8.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Sơ lược l ịch sử phát tri ển (cont)ADO.NET
8
![Page 9: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/9.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Introduction
Storedinto
Database (Oracle, SQL Server)
Client
ADO.NET
Data access technology9
![Page 10: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/10.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
ADO.NET architecture
Database
XML
XML
10
![Page 11: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/11.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
ADO.NET (tt)
�Hổ trợ bởi .Net Platform
�Sử dụng công ngh ệ XML để chuy ển đổi dữ liệu.
� Tương tác v ới tất cả các lo ại cơ sở dữ liệu.
�Khả năng th ực thi nhanh.
�Sử dụng cho các lo ại ứng dụng client-server.
11
![Page 12: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/12.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Nội dung
�ADO.NET
�Sơ lược l ịch sử phát tri ển
�Kiến trúc ADO.NET
� .NET Data Provider
�DataSet
�Hỏi & Đáp
12
![Page 13: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/13.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Kiến trúc
�Connected Model
�Disconnected Model
Chương trình
Chương trình
13
![Page 14: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/14.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
ADO.NET
�ADO.NET là một phần của .NET Framework
– Thư viện lớp có chức năng thao tác d ữ liệu trong ngôn ngữ MS.NET
�ADO.NET là dạng “ Disconnected ”
– Cho phép lấy cả một cấu trúc phức tạp của DL từ CSDL, sau đó ngắt kết nối rồi mới thực hiện thao tác xử lý!
– Trước đây ADO luôn phải duy trì kết nối trong quá trình làm việc.
14
![Page 15: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/15.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Môi tr ường “ connected ”
�Mỗi user có m ột kết nối cố định tới data source
�Ưu điểm
– Môi trường được bảo vệ tốt
– Kiểm soát được sự đồng bộ
– Dữ liệu luôn được mới
�Nhược
– Phải có một kết nối mạng cố định
– Scalability15
![Page 16: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/16.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Môi tr ường “ disconnected ”�Một tập con c ủa dữ liệu trung tâm được sao
chép và b ổ sung độc lập, sau đó sẽ được merge l ại vào d ữ liệu trung tâm.
�Ưu điểm– Có thể làm việc bất cứ lúc nào, cũng như có thể kết nối
bất kỳ vào Data Source
– Cho phép user khác có thể kết nối
– Nâng cao hiệu suất thực hiện của ứng dụng
�Khuy ết– Dữ liệu không được cập nhật một cách nhanh nhất
– Sự tranh chấp có thể xuất hiện và phải giải quyết
16
![Page 17: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/17.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
ADO.NET
�ADO.NET mạnh mẽ
– Kế thừa các ưu điểm của ADO
– Kết hợp với ý tưởng thiết kế hoàn toàn mới
�Đặc điểm nổi bật
– Thiết kế hoàn toàn dựa vào XML
• Chuẩn giao tiếp dữ liệu tốt nhất trên môi trường Internet hiện nay
– Thiết kế hoàn toàn hướng đối tượng
• Đặc trưng của thư viện .NET Framework
17
![Page 18: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/18.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
ADO.NET vs. ADO
Đặc Điểm ADO ADO.NET
DL xử lý được đưa vào bộ nhớ dưới dạng
Recordset : tương đương 1 bảng dữ liệu trong database
Dataset : tương đương 1 database
Duyệt dữ liệu Recordset chỉ cho phép duyệt tuần tự, từng dòng một.
Dataset : duyệt “t ự do, ngẫu nhiên”, truy cập thẳng tới bảng, dòng ,cột mong muốn.
Dữ liệu ngắt kết nối
Recordset thiên về hướng kết nối, nên việc hỗ trợ ngắt kết nối không mạnh
Dataset hỗ trợ hoàn toàn ngắt kết nối
Trao đổi dữ liệu qua Internet
Khả năng trao đổi dữ liệu ADO qua Internet thường có nhiều hạn chế. Do dùng chuẩn COM
ADO.NET trao đổi dữ liệu qua Internet r ất dễ dàng vì ADO.NET được thiết kế theo chuẩn XML, là chuẩn dữ liệu chính được sử dụng để trao đổi trên Internet.
![Page 19: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/19.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
ADO.NET
� Kiến trúc c ủa ADO.NET gồm 2 phần chính� Phần kết nối: sử dụng khi k ết nối CSDL và thao
tác dữ liệu, phải thực hi ện kết nối khi thao tác• Connection : quản lý việc đóng mở DB
– ???Connection : SqlConnection, OleDbConnection
• Command : lệnh truy vấn, tương tác dữ liệu khi đang lập kết nối
– ???Command : SqlCommand, OleDbCommand
• DataReader : đọc dữ liệu, chỉ xử lý 1 dòng dữ liệu tại một thời điểm
– ???DataReader : SqlDataReader, OleDbDataReader
• DataAdapter : cầu nối giữa DataBase và DataSet
19
![Page 20: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/20.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
ADO.NET
�Phần ngắt kết nối: là DataSet– DataSet không quan tâm đến Database thuộc kiểu
gì, mà lấy dữ liệu từ DataAdapter để xử lý– DataSet xem như một Database trong bộ nhớ: bảng,
quan hệ…– DataSet có các thành phần con như
• DataTable• DataRow• DataColumn• DataRelation• Các đối tượng nhóm: DataTableCollection,
DataRowCollection, DataColumnCollection
20
![Page 21: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/21.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Mô h ình đối tượng ADO.NET
21
![Page 22: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/22.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Namespace� System.Data — All generic data access classes
� System.Data.Common — Classes shared (or overridden) by individual data providers
� System.Data.Odbc — ODBC provider classes
� System.Data.OleDb — OLE DB provider classes
� System.Data.ProviderBase — New base classes and connection factory classes
� System.Data.Oracle — Oracle provider classes
� System.Data.Sql — New generic interfaces and classes for SQL Server data access
� System.Data.SqlClient — SQL Server provider classes
� System.Data.SqlTypes — SQL Server data types22
![Page 23: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/23.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Các lớp thư viện ADO.NET
� System.Data. OleDb: Access, SQL Server, Oracle
� System.Data. SqlClient : SQL Server
� System.Data. OracleClient : Oracle
� Đặc điểm:– Cả ba thư viện trên về giao tiếp lập trình là giống nhau
– Dùng thư viện SqlClient truy xuất SQL Server nhanh hơn OleDb
– Tương tự cho OracleClient
23
![Page 24: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/24.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider
�Các thành ph ần .NET Data Provider
24
![Page 25: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/25.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Connected Model
�Kết nối vào CSDL
� Thực hi ện lệnh
– Thêm/Xóa/Sửa dữ liệu
–Đọc dữ liệu từ CSDL
25
![Page 26: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/26.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Connected Model
� Kết nối vào CSDL– Các lớp phụ trách kết nối
• ODBCConnection• OleDBConnection• SqlConnection• OracleConnection
– Thuộc tính quan trọng
• ConnectionString: xác định nguồn dữ liệu cần kết nối
– Phương thức quan trọng
• Open: mở kết nối• Close: đóng kết nối
26
![Page 27: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/27.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider - Connection
�Các đối tượng Connection tuân th ủ IDbConnection interface.�ConnectionString: loại Data Source cần kết nối.�Open(): thiết lập kết nối đến Data Source.�Close(): ngắt kết nối đến Data Source.
Data SourceApplication
Connection
27
![Page 28: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/28.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider – Connection (cont)
�Kết nối vào CSDL AccessOleDbConnection cnn = new OleDbConnection();
cnn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;
Data Source=QLHS.mdb";
cnn.Open();
//Các lệnh cần thực hiện
cnn.Close();
28
![Page 29: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/29.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider – Connection (cont)
�Kết nối vào CSDL SQL Server:
SqlConnection cnn = new SqlConnection(“server= HIENLTH-PC\\SQLEXPRESS; database = QLHS; user id=sa; password=sa”);
cnn.Open();
// Thực hiện truy vấn dữ liệu
cnn.Close();
29
![Page 30: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/30.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
SQL2005 ConnectionString
� Theo đặc quy ền của SQL Server (có user, pass):
server= HIENLTH-PC\SQLEXPRESS; database = QLHS; user id=sa; password=sa
� Theo đặc quy ền của hệ điều hành:
server= HIENLTH-PC\SQLEXPRESS; database = QLHS; Trusted Connection = True;
server= HIENLTH-PC\SQLEXPRESS; database = QLHS; Integrated Security = True;
30
![Page 31: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/31.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Tập tin l ưu trữ kết nối
� Cho phép người dùng có thể cấu hình các giá trị thuộc tính cho chuỗi kết nối CSDL.
� Thường có dạng *.ini, *.txt. Từ .NET 1.0 trở lên có thể sử dụng tập tin App.config (định dạng XML) chứa khai báo các tham số cùng giá trị và các chỉ thị khác.
� Ví dụ: Tập tin DBConfig.ini
31
![Page 32: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/32.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Đọc thông tin t ập tin l ưu trữ kết nối
� Loại *.ini, *.txt s ử dụng StreamReader (using System.IO)
StreamReader docfile = new StreamReader (@"DBConfig.ini");
servername = Tach(docfile. ReadLine ());
databasename = Tach(docfile. ReadLine ());
username = Tach(docfile. ReadLine ());
password = Tach(docfile. ReadLine ());
32
![Page 33: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/33.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Đọc thông tin t ập tin l ưu trữ kết nối
� Loại App.config<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="SqlServer" connectionString="server=HIENLTH-PC\sqlexpress;database=SEQLHS;integrated security=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
33
![Page 34: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/34.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Đọc thông tin t ập tin l ưu trữ kết nối
� Loại App.config :
connectionstring = ConfigurationManager.ConnectionStrings[tên].
ConnectionString;
Ví dụ:
con.ConnectionString = ConfigurationManager.ConnectionStrings[“SqlServer "].
ConnectionString;
34
![Page 35: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/35.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider - Command
Data SourceApplication
Connection 011010011011010011
Command
35
![Page 36: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/36.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider - Command
� Các đối tượng Command tuân th ủ IDbCommand interface.�Connection: kết nối dùng để thực hiện câu lệnh.�CommandText: câu lệnh SQL cần thực hiện trên Data Source.�CommandType: loại câu lệnh trong CommandText (Text,
TableDirect, StoredProc).�ExecuteScalar(): thực hiện câu lệnh trong CommandText, kết
quả trả về là một giá trị đơn.�ExecuteNonQuery(): thực hiện câu lệnh trong CommandText và
không có kết quả trả về.�ExecuteReader(): thực hiện câu lệnh trong CommandText, kết
quả trả về là một DataReader.
36
![Page 37: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/37.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Command (cont) – SQL Server
SqlConnection cnn = new SqlConnection(“server=HIENL TH-PC\\SQLEXPRESS; database=QLHS; user id=sa; password =sa”);
SqlCommand cmd = new SqlCommand();
cmd. Connection = cnn;
cmd. CommandText = “SELECT COUNT(*) FROM HocSinh”;
cmd. CommandType = CommandType.Text;
cnn. Open();
int count = (int)cmd.ExecuteScalar();
cnn.Close();
37
![Page 38: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/38.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Command (cont) – SQL Server
SqlConnection cnn = new SqlConnection(“server=HIENLTH-PC\SQLEXPRESS; database=QLHS; user id=sa; password=sa”);
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText =
“INSERT INTO HocSinh(Ho, Ten, DienThoai) VALUES(N‘Nguyễn Văn’, N‘Trường’, ‘0989366990’)”;
cmd.CommandType = CommandType.Text;
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();38
![Page 39: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/39.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Command (cont) – MS Access
� Thực hi ện lệnh
– Thêm/Xóa/Sửa dữ liệu
Ví dụ:
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = cnn;
cmd.CommandText = “INSERT INTO Hocsinh VALUES(5, 'Lê Văn Xiêm','11/12/2006', 'Khánh Hòa', '221 Nguy ễn Văn Cừ')" ;
cmd.ExecuteNonQuery();
39
![Page 40: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/40.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider - Parameter
�Mục đích sử dụng:�Một vài giá trị trong câu lệnh chỉ biết khi thực hiện
câu lệnh.�Cần thực hiện câu lệnh nhiều lần với các giá trị
khác nhau.
�Các bước thực hi ện:�Tham số hóa câu lệnh: ? hoặc @[tên tham số].�Tạo các parameters tương ứng cho command.�Đặt giá trị cho các parameter mỗi khi dùng
command thực hiện câu lệnh.
40
![Page 41: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/41.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider – Parameter(cont)
� Tham số hóa�SQL Data Provider:
cmd.CommandText =“SELECT * FROM HocSinh WHERE tenhocsinh = @ten”;
cmd.CommandText =“INSERT INTO HocSinh(id_hocsinh, tenhocsinh, dtb)” +“ VALUES(@id, @ten, @dtb)”;
�Các provider khác:cmd.CommandText =
“SELECT * FROM HocSinh WHERE tenhocsinh = ?”;
cmd.CommandText =“INSERT INTO HocSinh(id_hocsinh, tenhocsinh, dtb)” +“VALUES(?, ?, ?)”;
41
![Page 42: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/42.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider – Parameter(cont)
� Tạo các parametercmd.Parameters.Add(“@id”, 5);
cmd.Parameters.Add(“@ten”, “Nguyễn Văn A”);
cmd.Parameters.Add(“@dtb”, 8.5);
� Đặt giá tr ị cho các parameterforeach (Student s in studentList)
{
cmd.Parameters[“@id”] = i;
cmd.Parameters[“@ten”] = s.studentName;
cmd.Parameters[“@dtb”] = s.studentMarks;
cmd.ExecuteNonQuery();
}42
![Page 43: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/43.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Parameter(cont) – MS Access� Ví dụ
OleDbCommand cmd = new OleDbCommand();cmd.Connection = cnn;cmd.CommandText = "INSERT INTO Hocsinh VALUES
(@Ma,@Ten,@Diachi,@NgaySinh,@Toan,@Van)“;OleDbParameter para=cmd.Parameters.Add("@Ma",OleDbT ype.Integer);para.Value=1;para=cmd.Parameters.Add("@Ten",OleDbType.VarWChar);para.Value= N"Lê V ăn A";para=cmd.Parameters.Add("@Diachi",OleDbType.VarWCha r);para.Value= N"Nguy ễn Văn Cừ";para = cmd.Parameters.Add("@Ngaysinh", OleDbType.Da te);para.Value = new DateTime(1982,10,1);para=cmd.Parameters.Add("@Toan",OleDbType.Integer);para.Value=5;para=cmd.Parameters.Add("@Van",OleDbType.Integer);para.Value=7;
cmd.ExecuteNonQuery();
43
![Page 44: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/44.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider – DataReader
MaHS HoTen DiaChi
i HocSinh I DiaChi i
Data SourceApplication
Connection
Command
DataReader
ExecuteReader()
Read()
011010011011010011
![Page 45: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/45.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider – DataReader
�DataReader là gì?
– Chỉ di chuyển tới phía trước, chỉ đọc
– truy cập dữ liệu nhanh,
– kết nối đến nguồn dữ liệu (data source)
– Quản lý dữ liệu, hoặc ràng buộc vào điều khiển list-bound
– Sử dụng tài nguyên
45
![Page 46: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/46.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider - DataReader
�Các đối tượng DataReader tuân th ủ interface IDataReader.�HasRow: cho biết còn dữ liệu để đọc nữa không.�Read(): đọc một mẫu tin vào DataReader.�Toán tử [ i ]: truy xuất đến cột i trong mẫu tin đọc được.�Close(): đóng DataReader.
� Lưu ý:�Truy xuất tuần tự và không quay lui.�Không cập nhật dữ liệu.�Cơ chế kết nối.
46
![Page 47: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/47.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider – DataReader (cont)
SqlConnection cnn = new SqlConnection(“server=localhost; database=Northwind; user id=sa; password=sa”);
SqlCommand cmd = new SqlCommand();cmd.Connection = cnn;cmd.CommandText = “select * from Orders”;cmd.CommandType = CommandType.Text;
cnn.Open();SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read()){
MessageBox.Show(dr[“CustomerID”].ToString());}
dr.Close();cnn.Close();
47
![Page 48: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/48.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataReader (cont) – MS Access
� Thực hi ện lệnh– Đọc dữ liệu từ CSDL
– Ví dụ
OleDbDataReader rd = cmd.ExecuteReader();
while (rd.Read())
{
if (!rd.IsDBNull(3))
MessageBox.Show(dr[“CustomerID”].ToString());
}
48
![Page 49: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/49.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider - SqlDataAdapter
�Bộ đọc dữ liệu từ CSDL ngu ồn (SQLServer) và đổ vào đối tượng DataSet hay DataTable.
�Phân trang d ữ liệu
�Phương th ức:– Fill(datasource)
– Fill(datasource, start, number, “tablename”)
49
![Page 50: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/50.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider - DataAdapter
� Các đối tượng DataAdapter tuân th ủ interface IDbDataAdapter.�Fill(DataSet): dùng SelectCommand lấy dữ liệu từ Data Source đổ vào DataSet.
�Update(DataSet): dùng InsertCommand, UpdateCommand và DeleteCommand cập nhật dữ liệu trong DataSet vào Data Source.
SelectCommand
UpdateCommand
InsertCommand
DeleteCommand
DataAdapter
Data Source
DataSet
50
![Page 51: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/51.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
.NET Data Provider – DataAdapter (cont)
SqlConnection cnn = new SqlConnection(“server=localhost; database=Northwind; user id=sa; password=sa”);
SqlDataAdapter da = new SqlDataAdapter(“select * from Orders”, cnn)
DataSet ds = new DataSet();
da.Fill(ds);
// Does something on the DataSet.
da.Update(ds);
51
![Page 52: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/52.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Nội dung
�Sơ lược l ịch sử phát tri ển
�Kiến trúc ADO.NET
� .NET Data Provider
�DataSet
�Hỏi & Đáp
52
![Page 53: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/53.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
System.Data namespace� DataSet — This object is designed for disconnected use and c an
contain a set of DataTables and include relationshi ps between these tables.
� DataTable — A container of data that consists of one or more DataColumns and, when populated, will have one or m ore DataRows containing data.
� DataRow — A number of values, akin to a row from a database table, or a row from a spreadsheet.
� DataColumn — This object contains the definition of a column, s uch as the name and data type.
� DataRelation — A link between two DataTable classes within a Data Set class. Used for foreign key and master/detail relat ionships.
� Constraint — This class defines a rule for a DataColumn class ( or set of data columns), such as unique values.
53
![Page 54: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/54.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataSet
� DataSet là c ơ sở dữ liệu được lưu trữ trong b ộ nhớ chính (in-memory database).
� Cơ chế không k ết nối.
� Gồm các đối tượng– DataTable
– DataRelation
Data Source
DataSet
� DataSet là gì?
Ánh xạ
54
![Page 55: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/55.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataSet (cont)
DataSet
DataTable
Columns
Rows
DataColumn
DataRow
Tables
Relations DataRelation
55
![Page 56: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/56.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Các phương th ức của DataSet
� Thêm 1 đối tượng DataTable: ds.Tables. Add (datatable_name);
� Xóa 1 đối tượng:– ds.Tables.Remove(datatable_name);– ds.Table.RemoveAt(datatable_index);
� Loại bỏ tất cả DataTable: ds.Tables. Clear();� Kiểm tra t ồn tại:
ds.Tables. Contains (datatable_name);� Kiểm tra t ồn tại và có th ể xóa được:
ds.Tables. CanRemove (datatable_name);� Đếm số lượng DataTable: ds.Tables. Count (thuộc
tính)
56
![Page 57: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/57.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Các phương th ức của DataSet
�Ghi ra file XML: ds. WriteXml (ten_file_xml);
�Đọc từ file XML: ds. ReadXml (ten_file_xml);
57
![Page 58: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/58.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataSet - DataTable
�DataTable th ể hiện một bảng trong c ơ sở dữ liệu.
�Gồm các đối tượng:– DataColumn– DataRow
�Các thu ộc tính và ph ương th ức:�TableName: tên bảng.�Columns: danh sách các cột (DataColumn).�Rows: danh sách các mẫu tin (DataRow).�PrimaryKey: danh sách các cột làm khóa chính
(DataColumn).�NewRow(): tạo một mẫu tin mới.
58
![Page 59: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/59.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataSet - DataColumn
�DataColumn th ể hiện một cột trong b ảng.
�Các thu ộc tính và ph ương th ức:�ColumnName: tên cột.�DataType: kiểu dữ liệu cột.
59
![Page 60: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/60.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataSet - DataRow
�DataRow th ể hiện một mẫu tin trong b ảng.
�Các thu ộc tính và ph ương th ức:�RowState: trạng thái của mẫu tin (Added,
Modified, Deleted, Unchanged, Detach).�Toán tử [i]: truy xuất đến cột i của mẫu tin.�Delete(): đánh dấu xóa mẫu tin.
60
![Page 61: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/61.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataSet (cont)
DataTable table = new DataTable(“SinhVien”);
table.Columns.Add(new DataColumn(“MSSV”, Type.GetType (“Int32”));
table.Columns.Add(new DataColumn(“HoTen”, Type.GetTyp e(“string”));
table.PrimaryKey = new DataColumn[] { table.Columns [“MSSV”] };
DataRow row = table.NewRow();
row[“MSSV”] = 123;
row[“HoTen”] = “Nguy ễn Văn A”;
table.Rows.Add(row);
61
![Page 62: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/62.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataSet (cont)
SqlConnection cnn = new SqlConnection(“server=HIENLTH-PC\SQLEXPRESS; database=Northwind; user id=sa; password=sa”);
SqlDataAdapter da = new SqlDataAdapter(“select * fr om Orders”, cnn)
DataSet ds = new DataSet();
da.Fill(ds);foreach (DataRow row in ds.Tables[0].Rows)
row[“OrderDate”] = DateTime.Now;da.Update(ds);
62
![Page 63: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/63.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataSet (cont)
SqlConnection cnn = new SqlConnection(“server=HIENL TH-PC\SQLEXPRESS; database=Northwind; user id=sa; password=sa”);
SqlDataAdapter da = new SqlDataAdapter(“select * fr om Orders”, cnn)
DataSet ds = new DataSet();
da.Fill(ds);
foreach (DataRow row in ds.Tables[0].Rows)
if (row[“CustomerID”].ToString() == “Nguy ễn Văn A”)
row.Delete();
da.Update(ds);63
![Page 64: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/64.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataSet (cont)
�So sánh DataSet và DataReader:�Tốc độ truy xuất.�Bô nhớ lưu trữ.�Thuận tiện trong thao tác.�Cơ chế kết nối và không kết nối.
64
![Page 65: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/65.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataSet (cont) – MS Access
� Đọc dữ liệu từ CSDL
OleDbDataAdapter da = new OleDbDataAdapter(
"select * from HocSinh", cnn);
DataSet dsHocSinh= new DataSet();
da.Fill(dsHocSinh, "HocSinh");
for (int i = 0; i < dsHocSinh.Tables ["HocSinh"].Rows.Count; i++)
{
listBox1.Items.Add(
dsHocSinh.Tables["HocSinh"].Rows[i]["HoTen"].ToStri ng());
}65
![Page 66: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/66.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataSet (cont) – MS Access
� Xử lý dữ liệu– Thêm dữ liệu
DataRow newRow;newRow=dsHocSinh.Tables["HocSinh"].NewRow();newRow[0] = 10;newRow[1] = "Lê Thị B";dsHocSinh.Tables["HocSinh"].Rows.Add(newRow);
– Xoá dữ liệudsHocSinh.Tables["HocSinh"].Rows[0].Delete();
– Thay đổi dữ liệuDataRow row = dsHocSinh.Tables["HocSinh"].Rows[1];row.BeginEdit();row[0] = 11; row[1] = "Lê Thị C";row.EndEdit();
66
![Page 67: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/67.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataSet (cont) – MS Access
�Cập nhật dữ liệu xuống CSDL
OleDbCommandBuilder buider =
new OleDbCommandBuilder(da);
da.Update(dsHocSinh, "HocSinh");
67
![Page 68: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/68.jpg)
Bài giảng môn học
Lập trình Windows Form v ới C#
Trình bày d ữ liệu
![Page 69: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/69.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Nhắc lại SqlDataAdapter
� SqlDataAdapter được dùng để điền dữ liệu vào đối tượng DataSet, DataTable và c ập nhật dữ liệu từ hai đối tượng này trở lại dữ liệu ngu ồn.
� Các trường hợp tạo đối tượng SqlDataAdapter:– SqlDataAdapter(string SQL, SqlConnection cnn);– SqlDataAdapter(SqlCommand cmd);
� Điền dữ liệu:– sqlDataAdapter.Fill(datasetname);– sqlDataAdapter.Fill(datatable);– sqlDataAdapter(DataSet dataset, int start, int end);– sqlDataAdapter(int start, int end, DataTable datatable);
Phân trang
69
![Page 70: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/70.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Cập nhật dữ liệu từ DataAdapter
� Trong Form khai báo các thu ộc tính là đối tượng DataSet (hay DataTable)
� Lấy dữ liệu: Đổ dữ liệu vào DataSetdataAdapter. Fill (dataset);
�Cập nhật dữ liệu: Cập nhật dữ liệu từ DataSet vào CSDL
dataAdapter. Update (dataset);
70
![Page 71: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/71.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataView
� Thể hiện của 1 DataTable.
� Đóng vai trò quan tr ọng trong DataBinding
� 1 DataTable có th ể có nhi ều View khác nhau
� Dùng để trình bày d ữ liệu dưới hình th ức lọc, sắp xếp, tìm ki ếm, hi ệu ch ỉnh và điều hướng dữ liệu trong DataTable
DataTable
DataViewDataViewDataView
71
![Page 72: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/72.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Khai báo DataView
�Có thể sử dụng các cú pháp sau:
– dataView = new DataView();dataView.Table = dataTable;
– dataView = new DataView(dataTable);
– dataView = new DataView(dataTable, sortFilter, sortString, DataViewRowState);
72
![Page 73: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/73.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataView
Tên Ý nghĩa
AllowDelete Cho phép xóa trên thể hiện
AllowEdit Cho phép chỉnh sửa
AllowNew Cho phép thêm mới
Item (index) Lấy giá trị value tại column có chỉ số index
RowFilter Thiết lập Expression dùng để lọc row
Sort Sắp xếp tăng hoặc giảm theo column
Table Cho biết view này được tạo bởi table nào
Count Lấy số lượng mẫu tin có trong DataView
Danh sách các thu ộc tính
73
![Page 74: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/74.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataView
Tên Ý nghĩa
AddNew Thêm mới 1 mẫu tin
Delete(index) Xóa mẫu tin thứ index
Danh sách các ph ương th ức
74
![Page 75: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/75.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM75
![Page 76: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/76.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataBinding
�Hiển th ị dữ liệu trong DataTable, … vào các control (TextBox, ComboBox, DataGrid, …)
�Gồm 2 loại:– Simple Binding– Complex Binding
�Ví dụ: Điền nội dung b ảng TonGiao vào ComboBox Tôn Giáo
DataTable bang = ketnoi.GetDataTable(“SELECT * FROM TonGiao”);
cboTonGiao. DataSource = bang;cboTonGiao. DisplayMember =
bang.Columns[ 1].ToString();//TenTGcboTonGiao. SelectedValue =
bang.Columns[ 0].ToString();//MaTG
76
![Page 77: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/77.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Đưa dữ liệu vào l ưới DataGridView
77
![Page 78: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/78.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Điền dữ liệu vào DataGridView
� datagridview. DataSource = datatable;
� datagridview. DataSource = dataset. Tables [index];
78
![Page 79: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/79.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
DataGridView (tt)
�Các thu ộc tính c ủa DataGridView:
– DataSource : điền dữ liệu vào DataGridView
– CurrentRow : lấy mẫu tin đang chọn
– CurrentCell : lấy ô đang chọn
�Các bi ến cố (Event) c ủa DataGridView:
– SelectionChanged : xảy ra khi người dùng di chuyển vào vùng dữ liệu
– DoubleClick
79
![Page 80: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/80.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Nội dung
�Sơ lược l ịch sử phát tri ển
�Kiến trúc ADO.NET
� .NET Data Provider
�DataSet
�Hỏi & Đáp
80
![Page 81: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/81.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM
Tham kh ảo
�Bài gi ảng ADO.NET c ủa thầy Nguy ễn Minh Huy, ĐH KHTN TpHCM
�MSDN
81
![Page 82: Cs06](https://reader033.vdocuments.site/reader033/viewer/2022052601/558e74d81a28abe8478b45ba/html5/thumbnails/82.jpg)
Lập trình Windows Form với C#
Lương Tr ần Hy Hi ến © 2010 Khoa CNTT – ĐH Sư Phạm TpHCM82