Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
4,73 MB
Nội dung
Khoa CNTT CNPM LẬP TRÌNH KẾT NỐI CSDL ADO.NET Th.S Phạm Hoàng Hải LTUDQL - Khoa CNTT CNPM NI DUNG ă Tng quan v ADO.Net ă Mụ hỡnh kt ni ă Mụ hỡnh phi kt ni Th.S Phm Hoàng Hải LTUDQL - Khoa CNTT CNPM TỔNG QUAN V ADO.NET ă Cỏc th h ca lp trỡnh kết nối CSDL Th.S Phạm Hoàng Hải LTUDQL - Khoa CNTT CNPM TỔNG QUAN VỀ ADO.NET MỤC TIÊU BI HC ă ă ă Tỡm hiu v ADO.Net Cỏc mơ hình kết nối CSDL (Connected & Disconnected) Dùng VS.Net (VB.Net) xây dựng ứng dụng kết nối CSDL ADO.Net ADO.NET Th.S Phạm Hoàng Hải LTUDQL - Khoa CNTT CNPM TNG QUAN V ADO.NET GII THIU ă ADO.NET l tập lớp thư viện sử dụng để truy xuất liệu Thêm/xóa/sửa liệu Đọc liệu Chng trỡnh ă CSDL, XML Nm b th vin lớp sở Net Framework Th.S Phạm Hoàng Hải LTUDQL - Khoa CNTT CNPM TỔNG QUAN V ADO.NET V TR CA ADO.NET ă ADO.NET l thnh phần nội Net Framework sử dụng ngôn ngữ hỗ trợ Net (C#, VB.Net, ) ASP.NET Windows Forms Class Framework Drawing XML ADO.NET Data Comman language Runtime System Services ă Cỏc lp ADO.Net t System.Data ă Chc nng v cỏch s dng hon toàn giống Th.S Phạm Hoàng Hải LTUDQL - Khoa CNTT CNPM TỔNG QUAN VỀ ADO.NET ADO vs ADO.Net Th.S Phạm Hoàng Hải LTUDQL - Khoa CNTT CNPM TNG QUAN V ADO.NET ADO vs ADO.Net ă ¨ ¨ ADO kết nối CSDL tốt, • Địi hỏi kết nối chuẩn COM Windows • Xử lý kết nối CSDL qua Internet khó khăn khơng tốt ADO.Net • Tích hợp chặt chẽ với XML • Làm việc tốt môi trường Internet ADO.Net cải tiến ADO • Khác biệt mơ hình (COM vs XML) • Giống chức Th.S Phạm Hoàng Hải LTUDQL - Khoa CNTT CNPM TỔNG QUAN VỀ ADO.NET ADO vs ADO.Net Khác biệt mơ hình Th.S Phạm Hồng Hải Thuận lợi/khó khăn kết nối Internet LTUDQL - Khoa CNTT CNPM TNG QUAN V ADO.NET Net DATA PROVIDER ă NET Data Provider • Dùng để kết nối đến CSDL, thực câu lệnh, nhận kết trả • Hiện có loại data provider ODBC ODBC Driver OLE DB Provider OLE DB RDBMS SQL Provider Command OLE DB Application Connection ODBC RDBMS SQL SERVER NET Data Provider Data Reader Data Adapter Th.S Phạm Hoàng Hải SQL Server LTUDQL - 10 Khoa CNTT CNPM MƠ HÌNH KẾT NI CONNECTED MODEL READER ă Reader: Thc hin lnh ã n n Đọc liệu từ CSDL Dùng lệnh ExecuteReader ExecuteScalar Lớp XXXDataReader u Read Book BookNam Author u GetXXX ID e u IsDBNull Dữ liệu đọc theo chiều tiến (Readonly) Th.S Phạm Hoàng Hải Book Author Book Author Book3 Author LTUDQL - 23 Khoa CNTT CNPM MƠ HÌNH KT NI CONNECTED MODEL READER ă Reader: Thc hin lnh • Đọc liệu từ CSDL • Ví dụ OleDbDataReader rd = cmd.ExecuteReader(); while (rd.Read()) { if (!rd.IsDBNull(3)) Console.WriteLine(rd.GetDateTime(3)); } Th.S Phạm Hoàng Hải LTUDQL - 24 Khoa CNTT CNPM MƠ HÌNH PHI KẾT NỐI DISCONNECTED MODEL DataAdapter Chương trình Th.S Phạm Hồng Hải LTUDQL - 25 Khoa CNTT CNPM MƠ HÌNH PHI KẾT NỐI DISCONNECTED MODEL Ánh xạ DataSet DataSet Data Source Tables Relations DataTable Columns DataColumn Rows DataRow DataRelation Th.S Phạm Hoàng Hải LTUDQL - 26 Khoa CNTT CNPM MƠ HÌNH PHI KẾT NỐI DISCONNECTED MODEL ă DataSet ã i tng DataSet c coi nh kho chứa bảng (Table) Người sử dụng thay đổi liệu bảng muốn cập nhật vào sở liệu thi hành phương thức Update đối tượng DataAdapter • Các bảng DataSet DataAdapter Fill vào bảng tạo thành từ đối tượng DataTable • Các bảng quản lý tập hợp Tables lớp DataSet Th.S Phạm Hồng Hải LTUDQL - 27 Khoa CNTT CNPM MƠ HèNH PHI KT NI DISCONNECTED MODEL ă DataTable ã TableName: tên bảng • Columns: danh sách cột (DataColumn) • Rows: danh sách mẫu tin (DataRow) • PrimaryKey: danh sách cột làm khóa (DataColumn) • NewRow(): tạo mẫu tin Th.S Phạm Hoàng Hải LTUDQL - 28 Khoa CNTT CNPM MƠ HÌNH PHI KẾT NỐI DISCONNECTED MODEL ă DataTable Th.S Phm Hong Hi LTUDQL - 29 Khoa CNTT CNPM MƠ HÌNH PHI KẾT NỐI DISCONNECTED MODEL ă DataRow ã RowState: trng thỏi ca mu tin (Added, Modified, Deleted, Unchanged…) • Tốn tử [ i ]: truy xuất đến cột i mẫu tin • Delete(): đánh dấu xóa mẫu tin Th.S Phạm Hồng Hải LTUDQL - 30 Khoa CNTT CNPM MƠ HÌNH PHI KT NI DISCONNECTED MODEL ă DataColumn ã ColumnName: tờn ct • DataType: kiểu liệu cột Th.S Phạm Hoàng Hải LTUDQL - 31 Khoa CNTT CNPM MƠ HÌNH PHI KẾT NỐI DISCONNECTED MODEL DataAdapter SelectCommand DataSet InsertCommand UpdateCommand Data Source DeleteCommand vFill: dùng SelectCommand lấy liệu từ Data Source đổ vào DataSet vUpdate: dùng InsertCommand, UpdateCommand DeleteCommand cập nhật liệu DataSet vào Data Source Th.S Phạm Hoàng Hải LTUDQL - 32 Khoa CNTT CNPM Mễ HèNH PHI KT NI DISCONNECTED MODEL ă Thc hin lệnh • Đọc liệu từ CSDL • Xử lý liệu • Cập nhật liệu xuống CSDL DataAdapter Chương trình Th.S Phạm Hồng Hải LTUDQL - 33 Khoa CNTT CNPM MƠ HÌNH PHI KẾT NỐI DISCONNECTED MODEL ¨ Đọc 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()); } Th.S Phạm Hoàng Hải LTUDQL - 34 Khoa CNTT CNPM MƠ HÌNH PHI KT NI DISCONNECTED MODEL ă X lý d liu • Thêm liệu DataRow newRow; newRow = dsHocSinh.Tables["HocSinh"].NewRow(); newRow[0] = 10; newRow[1] = "Lê Thị B“; dsHocSinh.Tables["HocSinh"].Rows.Add(newRow); • Xố liệu dsHocSinh.Tables["HocSinh"].Rows[0].Delete(); • Thay đổi liệu DataRow row; row = dsHocSinh.Tables["HocSinh"].Rows[1]; row.BeginEdit(); row[0] = 11; row[1] = "Lê Thị C"; row.EndEdit(); LTUDQL - 35 Th.S Phạm Hoàng Hải 35 Khoa CNTT CNPM MƠ HÌNH PHI KẾT NỐI DISCONNECTED MODEL ă Cp nht d liu xung CSDL OleDbCommandBuilder buider = new OleDbCommandBuilder(da); da.Update(dsHocSinh, "HocSinh"); Th.S Phạm Hoàng Hải LTUDQL - 36 Khoa CNTT CNPM CÂU HỎI Th.S Phạm Hoàng Hải LTUDQL - 37