Bài giảng Lập trình ứng dụng Visuabasic: Bài 6 - Phạm Đình Sắc

23 4 0
Bài giảng Lập trình ứng dụng Visuabasic: Bài 6 - Phạm Đình Sắc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Hãy tham khảo bài giảng Lập trình ứng dụng Visuabasic bài 6: Visualbasic. Net và Database trình bày mục tiêu sử dụng các lớp trong thư viện Ado.Net, mô tả cách thức kết nối và giao tiếp CSDL, mô tả chức năng và cách thức sử dụng lớp Dtaset - Datatable,...để đọc dữ liệu, đọc dữ liệu từ Dataeader và hiển thị trên các lớp kế thừa, cập nhập dữ liệu với Dataset và DataAdapter.

Buổi 6: Visual Basic.NET & Database Windows Form programming with VB.Net 2005 Giới thiệu: ™Các công nghệ truy cập liệu Microsoft DAO (Data Access Object), ODBC (Open DataBase Connectivity) Connectivity , RDO (Remote Data Object), ADO (ActiveX Data Objects) ™Tuy nhiên từ NET Framework đời cơng nghệ ADO.NET tích hợp, ADO.NET: ¾Chứa lớp cho phép ứng dụng connect data sources ¾Execute commands ¾Manage disconnected data (quản lý liệu ngắt kết nối) Windows Form programming with VB.Net 2005 Giới thiệu (tt): ™Với ADO.NET người lập trình viết mã lệnh thao tác sở liệu so với công nghệ trước ứng dụng client-server ứng dụng desktop ™Mặt khác, ASP.NET từ phiên NET Framework 2.0 trở lên có thêm thao tác với sở liệu mà không sử dụng ADO.NET SqlDataSource, LINQ Profiles Windows Form programming with VB.Net 2005 Buổi 6: VB.NET & Database (CSDL) ™Mục tiêu bài: Sử dụng lớp thư viện ADO.NET tương tác với CSDL: ¾Mơ tả cách thức kết nối giao tiếp với CSDL ¾Mơ tả chức cách thức sử dụng lớp DataSet, Datatable, Datarow, DataColumn để đọc liệu ¾Đọc liệu với DataReader hiển thị lớp kế thừa từ ComboBox, Listbox, TextBox ¾Cập nhật liệu với Dataset DataAdapter Windows Form programming with VB.Net 2005 Kiến trúc ADO.NET ADO.NET đối tượng dùng để thao tác với CSDL NetFramework; ngơn ngữ lập trình Visual studio (trong có VB.Net) dùng phương thức kết nối để giao tiếp với CSDL DataAdapter Windows Form programming with VB.Net 2005 Kiến trúc ADO.NET ™Có thể chia làm phần chính: ¾Managed Provider Component: bao gồm đối tượng như: DataAdapter, DataReader, Connection, Command giữ nhiệm vụ làm việc trực tiếp với liệu database, file,… ¾Content Component: bao gồm đối tượng DataSet, DataTable, DataView, DataRow, DataColumn, DataRelation …đại diện cho liệu thực cần làm việc Windows Form programming with VB.Net 2005 Content Component: Content Component: đối tượng đại diện cho liệu cần xử lý, bao gồm đối tượng sau: ¾DataSet ¾DataTable ¾DataView ¾DataRow ¾DataColumn ¾DataRelation Windows Form programming with VB.Net 2005 Content Component: ¾ DataSet: hình ảnh CSDL nhớ, chứa bảng liệu DataTable mối quan hệ Datarelation ¾ DataTable: giống bảng liệu, dùng chứa liệu ứng dụng ¾ Dataview: “Hình ảnh” DataTable, DataTable có nhiều Dataview, thơng qua Dataviewt xếp liệu, lọc liệu DataTable ¾ DataColumn: chứa cột DataTable ¾ DataRow: chứa dịng DataTable Windows Form programming with VB.Net 2005 Content Component: ¾DataRelation: chứa mối ràng buộc CSDL, chứa: * Unique Constraint or Primary Key Constraint: đảm bảo tính giá trị cột table * Foreign Key Constraint: ràng buộc khóa ngoại Windows Form programming with VB.Net 2005 Managed Provider Component Microsoft cung cấp hai Provider component phiên ADO.NET OLEDB SQL Server ¾ OLEDB managed provider: dùng thao tác với loại CSDL (Access, Excel, Oracle, IBM…), bao gồm đối tượng sau: OleDBConnection OleDBCommand OleDBParemeter OleDBDataReader OleDBDataAdapter ¾ OLEDB: Namespace Imports System.Data.OLEDB Windows Form programming with VB.Net 2005 10 Managed Provider Component (tt) ™ SQL Server managed provider: dùng thao tác với CSDL SQL Server, bao gồm đối tượng: SQLConnection SQLCommand SQLParemeter SQLDataReader SQLDataAdapter ™ Để sử dụng Provider ta phải viết lệnh Imports (khai báo Namespace) đầu đối class ¾ SQL Server: Imports System.Data.SQLClient Windows Form programming with VB.Net 2005 11 Managed Provider Component (tt) ™ Oracle managed provider: dùng thao tác với CSDL SQL Server, bao gồm đối tượng: OracleConnection OracleCommand OracleParemeter OracleDataReader OracleDataAdapter ¾ Ocracle: Imports Oracle.DataAccess.Client Windows Form programming with VB.Net 2005 12 Managed Provider Component (tt) ¾ Connection: liên kết với CSDL, đối tượng khác phải thông qua đối tượng Connection để thao tác với CSDL ¾ Command: đối tượng dùng thực câu truy vấn (SQL) ¾ Parameter: đối tượng dùng truyền tham số cho Command ¾ DataReader: chứa liệu lấy từ CSDL, đọc, duyệt từ xuống ¾ DataAdapter: đối tượng trung gian CSDL DataSet, thông qua đối tượng ta lấy liệu từ CSDL đưa lên Dataset cập nhật liệu từ DataSet xuống CSDL Windows Form programming with VB.Net 2005 13 Managed Provider Component (tt) ¾ Ghi chú: Tùy theo CSDL sử dụng (Access, SQl Server, Ocrale) Managed Provider Component phải dùng hợp lý: VD: ¾ OleDbConnection OleDbCommand ¾ SqlConnection SqlCommand ¾ OracleConnection OracleCommand ¾ …… Windows Form programming with VB.Net 2005 14 OleDbConnection Object () Dùng tạo kết nối ứng dụng CSDL ™ Các thuộc tính (Properties) OLEDBConnection ¾ ConnectionString: chuỗi liên kết CSDL, liên kết với Access với Cú pháp sau: “Provider=Microsoft.jet.oledb.4.0;Data Source= Đườngdẫn\tênCSDL” ¾ State: trạng thái đối tượng kết nối (Connection Object) như: Closed, Open, Broken…) Windows Form programming with VB.Net 2005 15 OleDbConnection Object (tt) ™ Một số Phương thức thường dùng Connection ¾ Open: mở kết nối đến CSDL với thông tin khai báo ConnectionString ¾ Close: Đóng kết nối với nguồn liệu Sử dụng phương thức để đóng Connection mở ¾ Dispose: Xoá tài nguyên liên quan đến Connection vùng nhớ Windows Form programming with VB.Net 2005 16 OleDbConnection Object (tt) ¾ Khai báo OleDbConnection dùng MS Access: ‘Imports provider đầu hình Code Imports SysTem.Data Imports SysTem.Data.OleDb ‘ Khai báo khởi tạo OLEDbConnection Dim strConnection As String = _ "Provider=Microsoft.Jet.OLEDB.4.0; " & _ "Data Source =" & “” Dim cn as New OleDbConnection(strConnection) cn.Open() ‘Khai báo class thường dùng từ khóa Private thay cho Dim Windows Form programming with VB.Net 2005 17 Connection Object (tt) ¾ Nếu lưu CSDL thư mục file chạy chương trình ta dùng thuộc tính Application.StartupPath sau: Dim cn as new OleDbConnection Dim strConnection as string = _ "Provider=microsoft.jet.oledb.4.0;data source=" & _ Application.StartupPath & “\TenCSDL.mdb“ cn.ConnectionString = strConnection Try ConnectionState = cn.State If cn.State = Data.ConnectionState.Closed Then cn.Open() End If Catch ex As Exception MessageBox.Show("Lỗi Kết nối CSDL!", "Lỗi", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error) End Try Windows Form programming with VB.Net 2005 18 Imports System.Data Imports System.Data.OleDb Public Class clsDataLayer Private strConnection As String Private cn As New OleDbConnection Public Sub New() strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\QLHoaDon.mdb" cn.ConnectionString = strConnection End Sub ‘ Kết thú thúc Sub khở khởi tạ tạo class clsDataLayer Public Sub GetConnection() Dim ConnectionState As ConnectionState Try ConnectionState = cn.State If cn.State = Data.ConnectionState.Closed Then cn.Open() End If Catch ex As Exception MsgBox(ex.Message MsgBox(ex.Message & “ Lỗi mở mở CSDL!", “Thông bá báo lỗ lỗi“) End Try End Sub ‘ Kết thú thúc Sub mở mở kết nố nối CSDL End Class Windows Form programming with VB.Net 2005 19 OleDbCommand Object: ™ Là đối tượng dùng để truy vấn CSDL ™ Khai báo: thường dùng kiểu khai báo ¾ Khái báo đơn giản: Dim cmd As New OleDbCommand() ¾ Khái báo có khởi tạo: Dim cmd As New OleDbCommand (strSQL, objConnection) Trong trường hợp chuỗi truy vấn strSQL objConnection phải khai báo trước gọi thủ tục hàm trước khai báo theo kiểu này) Windows Form programming with VB.Net 2005 20 10 Properties thường dùng Command Object ¾ CommandText: truy vấn SQL, tên bảng tên stored procedure muốn thực nguồn liệu ¾ Commandtype: Giá trị định cho biết nội dung CommandText phải dùng với giá trị sau: ƒ Text: (mặc định) câu lệnh SQL ƒ TableDirect: tên nhiều bảng ƒ Storedprocedure: tên thủ tục nội lại CSDL (Cá (Các giá giá trị trị lậ lập trì trình VB.Net sẽ tự hiể hiển thị thị để để chọ chọn) Windows Form programming with VB.Net 2005 21 Properties thường dùng Command Object ¾ Connection: Đố Đối tượ tượng Connection sử sử dụng cho Command ¾ Parameters: Tập hợ hợp cá tham số số dùng Command, thườ thường dù dùng cho truy vấ vấn có có ĐK (WHERE) ¾ VD: Dim cmd As New OleDbCommand() cmd.Connection = cn ‘ Connection Object is opened cmd.CommandText = "sp_Login" cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.AddWithValue("Uname", UserName) cmd.Parameters.AddWithValue("Pws", Password) ‘ UserName, Password biến nhập liệu truyền vào Windows Form programming with VB.Net 2005 22 11 Các Phương thức Command Object: ¾ ExecuteReader: Phương thức (khơng có tham số) trả đối tượng DataReader, Trường hợp có tham số tham số thơng dụng là: 9CommandBehavior.SingleRow: Câu truy vấn trả dòng CommandBehavior.SchemaOnly : Câu truy vấn không trả liệu mà trả thông tin cột bảng 9CommandBehavior.CloseConnection: đối tượng connection đóng đối tượng DataReader đóng Windows Form programming with VB.Net 2005 23 Các Phương thức Command Object: ¾ ExecuteNonquery: 9Gọi thực câu truy vấn cập nhật liệu: INSERT, UPDATE, DELETE Phương thức trả số dòng chịu tác động Command, có lỗi trả -1 ¾ ExecuteScalar: 9Phương thức thực lệnh Command trả giá trị cột dòng 9phương thức muốn Command thực hàm tính tốn thống kê SUM, COUNT, AVG, MAX, MIN nguồn liệu lúc thực thi Windows Form programming with VB.Net 2005 24 12 Public Function GetCommand() as OleDbCommand Dim cn As New OleDbConnection Dim cmd As New OleDbCommand Dim ConnectionState As ConnectionState Dim strConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ Source=D:\VB.NET\ VB.NET\ADO.NET\ ADO.NET\QuanLyHoaDon\ QuanLyHoaDon\QLHoaDon.mdb" cn.ConnectionString = strConnection Try ConnectionState = cn.State If cn.State = Data.ConnectionState.Closed Then cn.Open() End If cmd.Connection = cn Return Cmd Catch ex As Exception Return Nothing MessageBox.Show(ex.Message MessageBox.Show(ex.Message)) End Try End function Windows Form programming with VB.Net 2005 25 OleDbReader Object: (DataReader) ™ Là đối tượng truy cập liệu trực tiếp, sử dụng cursor phía Server trì kết nối với Server suốt trình đọc liệu, chứa liệu trả từ phương thức ExecuteReader command object ™ Các thuộc tính OledbReader: ¾ FieldCount: Trả số dịng hành DataReader ¾ IsClosed: Cho biết DataReader đóng chưa? ¾ Item: Trị cột truyền vào Tham số truyền tên cột số thứ tự cột (từ 0Ỉ n-1 cột) Windows Form programming with VB.Net 2005 26 13 OleDbReader Object: (tt) ™ Các phương thức OledbReader: ¾ Close(): Đóng DataReader ¾ GetFieldType(i): kiểu liệu cột thứ i ¾ GetName(i): Trả tên cột thứ i ¾ GetOrdinal(name): Trả số thứ tự cột (tính từ 0) ¾ GetSchemaTable(): Trả bảng chứa thơng tin mơ tả cột DataReader Windows Form programming with VB.Net 2005 27 OleDbReader Object: (tt) ™ Các phương thức OledbReader (tt): ¾ GetValue(i): Trả giá trị cột thứ i ¾ Read(): Di chuyển đến dịng trả True dòng để di chuyển, ngược lại trả False ¾ NextResult(): Advances the data reader to the next result, when reading the results of batch SQL statements Windows Form programming with VB.Net 2005 28 14 Public Function GetDataReader(ByVal StoreProceureName As String, Optional ByVal arrParams() As String = Nothing, Optional ByVal arrValues() As Object = Nothing) As OleDbDataReader Dim rd As OleDbDataReader Try If Not (arrParams Is Nothing) Then For nIndex As Integer = To (arrParams.Length - 1) cmd.Parameters.AddWithValue(arrParams(nIndex), arrValues(nIndex)) Next End If rd = cmd.ExecuteReader(CommandBehavior.CloseConnection) Return rd Catch ex As Exception MsgBox(ex.Message) Return Nothing Finally ' Neu Dong Ket noi thi Reader khong doc duoc cmd.Dispose() End Try End Function Windows Form programming with VB.Net 2005 29 OleDbDataAdapter Object (DataAdapter) ™ Là gồm bốn đối tượng Command: ¾ SelectCommand: cho phép lấy thơng tin từ nguồn liệu ¾ InsertCommand: cho phép thêm liệu vào bảng nguồn liệu ¾ UpdateCommand: cho phép sửa đổi liệu bảng nguồn liệu ¾ DeleteCommand: cho phép hủy bỏ liệu bảng nguồn liệu Windows Form programming with VB.Net 2005 30 15 OleDbDataAdapter Object (tt) ™ Cú pháp khai báo: Dim Bien as New OleDbDataAdapter Khởi tạo: Bien= new OleDbDataAdapter (,) Trong đó: : Câu lệnh truy vấn tên storedprocedure để thực truy xuất từ nguồn liệu : Đối tượng Connection kết nối với CSDL Windows Form programming with VB.Net 2005 31 OleDbDataAdapter Object (DataAdapter) ™Các thuộc tính (Properties): ¾ SelectCommand: Đối tượng Command chứa nội dung lệnh truy xuất mẩu tin từ nguồn liệu ¾ DeleteCommand: Đối tượngCommand chứa nội dung lệnh hủy mẩu tin nguồn liệu ¾ InsertCommand: Đối tượng Command chứa nội dung lệnh chèn mẩu tin vào nguồn liệu ¾ Update command: Đối tượng Command chứa nội dung lệnh cập nhật mẩu tin vào nguồn liệu Windows Form programming with VB.Net 2005 32 16 OleDbDataAdapter Object (DataAdapter) ™ Các Phương thức OleDbDataAdapter: ¾ Fill(): Đổ liệu vào DataTable có sẵn ¾ Fill(): Đổ liệu vào DataSet có sẵn Dữ liệu lấy Dataset dạng DataTable, với tên mặc định Table1, Table2,… ¾ Fill(,): Đổ liệu vào DataSet cho bảng ; chưa có, bảng tạo với tên (Cách thường dùng nhiều hơn) Windows Form programming with VB.Net 2005 33 OleDbDataAdapter Object (DataAdapter) ™ Chú ý: ¾ Khi dùng nhiều DataAdapter để đổ liệu nhiều bảng vào DataSet, không rõ đổ vào bảng DataSet, liệu đổ chung vào bảng, số cột tổng số cột có tên khác bảng từ nguồn liệu, dịng cột khơng có liệu tương ứng mang trị Null ¾ Chúng ta dùng DataAdapter để đổ liệu nhiều bảng vào DataSet với nội dung lệnh truy vấn lệnh liên tiếp cách dấu (;) (MS SQL Server) Windows Form programming with VB.Net 2005 34 17 DataTable ™Đối tượng chứa liệu Dataset ™Khai báo: Dim Ten_Bien as new DataTable ¾ DataTable: tạo từ tập hợp DataRows DataColums ¾ DataColumns: tập hợp cột có DataTable ¾ DataRows: tập hợp dịng liệu Windows Form programming with VB.Net 2005 35 DataColumn ™ Tạo DataColumn Dim Ten_Cot New DataColumn(,) Trong đó: : Tên muốn đặt cho cột : Kiểu liệu cột, khai báo thông qua cú pháp System.Type.GetType(“System.Tênkiểu”) ™ Đưa cột vào bảng: TenBang.Columns.add(Ten_Cot) Windows Form programming with VB.Net 2005 36 18 DataRows ™ DataRows tập hợp dòng liệu bảng Mọi tham chiếu đến dịng thơng qua tập hợp Sau số chức DataRow Các thuộc tính: Rows.Count: Cho biết số dịng liệu Trong DataTable Rows.Item(i) Rows(i): tham chiếu đến dòng i Rows.Item(i)(j): lấy liệu cột j dòng i Rows.Item(i)(“Têncột”): lấy liệu cột có tên cột dịng i (i 0) Windows Form programming with VB.Net 2005 37 DataRows ™ Để thêm dòng vào table: TableName.Rows.Add() ™ Ví dụ: thêm dịng liệu vào Table Khoa Dim dong As DataRow = Khoa.NewRow() dong(0)= “VL“ dong(1)= “VậtLý“ Khoa.Rows.Add(dong) ™ Rows.RemoveAt(): Xóa dịng khỏi bảng ™ Rows.Remove(dong): Xóa dịng khỏi bảng ™ Rows.Clear(): Xóa tồn dòng liệu bảng Windows Form programming with VB.Net 2005 38 19 Dataview Dataview: là“Khung nhìn” DataTable, thơngqua Dataview, ta hiển thị liệu lấy từ DataTable theo yêu cầu người dùng ¾ Khai báo: Dim Ten_bien as New DataView() ¾ Ta tạo View từ bảng bằng: Dim Ten_bien As DataView = Ten_Bang.DefaultView Windows Form programming with VB.Net 2005 39 Dataview Thuộc tính phương thức quan trọng Dataview ¾ RowFilter: Biểu thức lọc DataView để thay đổi cách thị liệu Cú pháp: Ten_view.RowFilter=“Tencot=Giá tri and/or …” ¾ Sort :Biểu thức xếp, Cú pháp: Ten_view.Sort=“Tencot asc/desc,…” ¾ Find:Tìm kiếm, trả vị trí dịng thỏa điều kiện, tìm theo cột phải xếp liệu theo cột đó, Cú pháp: Ten_View.Sort = “Ten_Cot cần tìm” vi_tri = Ten_view.Find(“Giá trị”) Windows Form programming with VB.Net 2005 40 20 DataSet ¾Dataset lớp dùng để thao tác với liệu theo mơ hình liệu phi kết nối ¾Nó coi kho chứa table ¾Dữ liệu cập nhật bảng muốn cập nhật vào CSDL DataSet thực việc cập nhật liệu thông qua DataAdapter Windows Form programming with VB.Net 2005 41 DataSet ¾ Các bảng DataSet DataAdapter Fill vào bảng tạo thành từ lớp DataTable ¾ Các bảng quản lý tập hợp Tables lớp DataSet ¾Một Data set lưu trữ nhiều bảng (Table) ¾Khai báo dim Ten_Bien as New DataSet() Windows Form programming with VB.Net 2005 42 21 Các phương thức quan trọng DataSet: ¾Ten_bien.Tables.Add(): đưa bảng vào DataSet ¾Ten_bien.Tables.Remove(): Xóa bảng khỏi DataSet ¾Ten_bien.Tables.Contains(): Kiểm tra bảng có thuộc DataSet ¾Ten_Bien.Tables.CanRemove(): trả true xóa bảng ¾Ten_bien.Tables.Clear(): Xóa tất bảng khỏi DataSet ¾Ten_Bien.Dispose: Xóa DataSet ¾Ten_Bien.Clear: Xóa tồn nội dung DataSet: Windows Form programming with VB.Net 2005 43 Public Function UpdateRows(ByVal UpdateRows(ByVal queryString As String, ByVal ds As DataSet, DataSet, ByVal tableName As String) As DataSet Try Dim da As New OleDbDataAdapter() da.SelectCommand = New OleDbCommand(queryString, cn) Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(da) da.Fill(ds, tableName) da.Update(ds, tableName) Return ds Catch ex As Exception MsgBox(ex.Message) Return Nothing End Try End Function Windows Form programming with VB.Net 2005 44 22 DataGridView Control ¾ Hiển thị liệu dạng khung lưới liệu thường lấy từ DataTable, DataView DataSet ™Cú pháp lấy liệu từ DataTable: Tên_dgv DataSource = ™Cú pháp lấy liệu từ DataView: Tên_dgv DataSource = Cú pháp lấy liệu từ DataSet: Tên_dgv DataSource = Tên_dgv DataMember = Windows Form programming with VB.Net 2005 45 Windows Form programming with VB.Net 2005 46 23 ...Giới thiệu (tt): ™Với ADO.NET người lập trình viết mã lệnh thao tác sở liệu so với công nghệ trước ứng dụng client-server ứng dụng desktop ™Mặt khác, ASP.NET từ phiên NET Framework... tác với sở liệu mà không sử dụng ADO.NET SqlDataSource, LINQ Profiles Windows Form programming with VB.Net 2005 Buổi 6: VB.NET & Database (CSDL) ™Mục tiêu bài: Sử dụng lớp thư viện ADO.NET tương... VB.Net 2005 Kiến trúc ADO.NET ADO.NET đối tượng dùng để thao tác với CSDL NetFramework; ngơn ngữ lập trình Visual studio (trong có VB.Net) dùng phương thức kết nối để giao tiếp với CSDL DataAdapter

Ngày đăng: 08/05/2021, 17:28

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan