s vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh...

23
LẬP TRÌNH TRÊN MÔI TRƯỜNG WINDOWS *** ADO.NET Phạm Minh Tuấn [email protected]

Upload: zzsunzz

Post on 05-Jul-2015

751 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

LẬP TRÌNH TRÊN MÔI TRƯỜNG WINDOWS

***ADO.NET

Phạm Minh Tuấ[email protected]

Page 2: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 2

Nội dung trình bày

Giới thiệu Connected Model Disconnected Model

Page 3: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 3

Giới thiệu

ADO.NET là một tập các lớp thư viện được sử dụng để truy xuất dữ liệu

Chiến lược truy xuất dữ liệu Connected Model Disconnected Model

Chương trình CSDL, XML…

Thêm/xóa/sửa dữ liệu

Đọc dữ liệu

Page 4: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 4

Giới thiệu

Connected Model

Disconnected Model

Chương trình

Chương trình

Page 5: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 5

Giới thiệu

.NET Data Provider Dùng để kết nối đến CSDL, thực hiện các câu lệnh, và

nhận kết quả trả về. Hiện có 4 loại data provider chính

ADO.NET

ODBC

ApplicationOLE DB

Oracle

SQL Server

.NET Data Provider

Page 6: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 6

Giới thiệu

.NET Data Provider Các thành phần của .NET Data Provider

.NET Data Provider

???Connection

???Command

???DataReader

???DataAdapter

SelectCommand

DeleteCommand

UpdateCommand

InsertCommand

Parameters ???Parameter

Page 7: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 7

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

Page 8: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 8

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

Page 9: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 9

Connected Model

Kết nối vào CSDL

Ví dụ: kết nối vào AccessOleDbConnection cnn = new OleDbConnection();cnn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=hocsinh.mdb";cnn.Open();

//Các lệnh cần thực hiện

cnn.Close();

Page 10: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 10

Connected Model

Thực hiện lệnh Các lớp phụ trách

ODBCCommand OleDBCommand SqlCommand OracleCommand

Thuộc tính quan trọng Connection: xác định CSDL sẽ thực hiện thao tác CommandText: xác định thao tác cần thực hiện Parameters: xác định các tham số lệnh

Phương thức quan trọng ExecuteReader: phù hợp lệnh Select trả ra 1 bảng dữ liệu ExecuteScalar: phù hợp lệnh Select trả ra 1 giá trị ExecuteNonQuery: phù hợp lệnh Insert, Delete, Update

Page 11: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 11

Connected Model

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 A','227 Nguyễn Văn Cừ','11/12/2006',5,7)";cmd.ExecuteNonQuery();

Page 12: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 12

Connected Model

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",OleDbType.Integer); para.Value=1; para=cmd.Parameters.Add("@Ten",OleDbType.VarWChar); para.Value="Lê Văn A"; para=cmd.Parameters.Add("@Diachi",OleDbType.VarWChar); para.Value="Nguyễn Văn Cừ"; para = cmd.Parameters.Add("@Ngaysinh", OleDbType.Date); 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();

Page 13: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 13

Connected Model

Thực hiện lệnh Đọc dữ liệu từ CSDL

Dùng lệnh ExecuteReader hoặc ExecuteScalar Lớp XXXDataReader

Read GetXXX IsDBNull

BookID BookName Author

1 Book 1 Author 1

2 Book 2 Author 2

3 Book3 Author 3

Page 14: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 14

Connected Model

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)) Console.WriteLine(rd.GetDateTime(3));}

Page 15: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 15

Disconnected Model

Data Source

DataSetÁnh xạ

DataSet

DataTable

Columns

Rows

DataColumn

DataRow

Tables

Relations DataRelation

Page 16: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 16

Disconnected Model

DataTable 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.

DataColumn ColumnName: tên cột. DataType: kiểu dữ liệu cột.

DataRow RowState: trạng thái của mẫu tin (Added, Modified, Deleted,

Unchanged…). 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.

Page 17: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 17

Disconnected Model

SelectCommand

UpdateCommand

InsertCommand

DeleteCommand

DataAdapter

Data Source

DataSet

- - FillFill: dùng SelectCommand lấy dữ liệu từ Data Source đổ vào : dùng SelectCommand lấy dữ liệu từ Data Source đổ vào DataSet.DataSet.- - UpdateUpdate: dùng InsertCommand, UpdateCommand và : dùng InsertCommand, UpdateCommand và DeleteCommand cập nhật dữ liệu trong DataSet vào Data DeleteCommand cập nhật dữ liệu trong DataSet vào Data Source.Source.

Page 18: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 18

Disconnected Model

Thực hiện lệnh Đọc dữ liệu từ CSDL Xử lý dữ liệu Cập nhật dữ liệu xuống CSDL

Page 19: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 19

Disconnected Model

Đọ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"].ToString()

);

}

Page 20: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 20

Disconnected Model

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ệu

dsHocSinh.Tables["HocSinh"].Rows[0].Delete(); Thay đổi dữ liệu

DataRow row = dsHocSinh.Tables["HocSinh"].Rows[1]; row.BeginEdit(); row[0] = 11;

row[1] = "Lê Thị C";row.EndEdit();

Page 21: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 21

Disconnected Model

Cập nhật dữ liệu xuống CSDLOleDbCommandBuilder buider =

new OleDbCommandBuilder(da);

da.Update(dsHocSinh, "HocSinh");

Page 22: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 22

Page 23: S vnet.vn 51. [silde bài giảng] lập trình trên môi trường windows với ado.net - minh tuấn

01/10/13Khoa CNTT - ĐH KHTN 23

Slide có sử dụng lại bài giảng về ADO.NET của Thầy Nguyễn Minh Huy