Bài giảng Lập trình ứng dụng Windows Form in VB.NET 2005 - Buổi 6: Visual Basic.NET và Database
Các công nghệtruy cập dữliệu của Microsoft như a Microsoft như
DAO (Data Access Object), ODBC(Open DataBase
Connectivity Connectivity), RDO(Remote Data Object), ADO
(ActiveX Data Objects)
Tuy nhiên từkhi .NET Framework ra đ Framework ra đời thì công
nghệADO.NET đã đư đã được tích hợp, ADO.NET:
¾Chứa các lớp cho phép các ứng dụng connect data
sources
ExecuteReader: Phương thức này (không hoặc có 1 tham số) trả về một đối tượng DataReader, Trường hợp có tham số các tham số thông dụng là: 9CommandBehavior.SingleRow: Câu truy vấn chỉ trả về 1 dòng duy nhất CommandBehavior.SchemaOnly : Câu truy vấn không trả về dữ liệu mà trả về thông tin các cột của bảng 9CommandBehavior.CloseConnection: đối tượng connection sẽ đóng khi đối tượng DataReader đóng Các Phương thức của Command Object: 24Windows Form programming with VB.Net 2005. ¾ExecuteNonquery: 9Gọi thực hiện các câu truy vấn cập nhật dữ liệu: INSERT, UPDATE, DELETE 9 Phương thức này trả về số dòng chịu tác động của Command, nếu có lỗi trả về -1 ¾ExecuteScalar: 9Phương thức này thực hiện lệnh của Command và chỉ trả về giá trị của cột đầu tiên và dòng đầu tiên. 9phương thức này khi muốn Command thực hiện các hàm tính toán thống kê SUM, COUNT, AVG, MAX, MIN... trên nguồn dữ liệu ngay lúc thực thi Các Phương thức của Command Object: 13 25Windows Form programming with VB.Net 2005. 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:\VB.NET\ADO.NET\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) End Try End function 26Windows Form programming with VB.Net 2005. Là đối tượng truy cập dữ liệu trực tiếp, sử dụng cursor phía Server và duy trì kết nối với Server trong suốt quá trình đọc dữ liệu, chứa dữ liệu trả về từ phương thức ExecuteReader của command object Các thuộc tính của OledbReader: ¾FieldCount: Trả về số dòng hiện hành của DataReader. ¾ IsClosed: Cho biết DataReader đã đóng chưa? ¾ Item: Trị của cột truyền vào. Tham số truyền có thể là tên cột hoặc số thứ tự của cột (từ 0Æ n-1 cột) OleDbReader Object: (DataReader) 14 27Windows Form programming with VB.Net 2005. Các phương thức của OledbReader: ¾Close(): Đóng DataReader. ¾GetFieldType(i): kiểu dữ liệu của cột thứ i ¾GetName(i): Trả về tên của cột thứ i ¾GetOrdinal(name): Trả về số thứ tự của cột (tính từ 0) ¾GetSchemaTable(): Trả về bảng chứa thông tin mô tả cột của DataReader. OleDbReader Object: (tt) 28Windows Form programming with VB.Net 2005. Các phương thức của OledbReader (tt): ¾GetValue(i): Trả về giá trị của cột thứ i ¾Read(): Di chuyển đến dòng kế tiếp và trả về True nếu còn dòng để di chuyển, ngược lại trả về False ¾ NextResult(): Advances the data reader to the next result, when reading the results of batch SQL statements OleDbReader Object: (tt) 15 29Windows Form programming with VB.Net 2005. 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 = 0 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 30Windows Form programming with VB.Net 2005. OleDbDataAdapter Object (DataAdapter) Là một bộ gồm bốn đối tượng Command: ¾SelectCommand: cho phép lấy thông tin từ nguồn dữ liệu về ¾ InsertCommand: cho phép thêm dữ liệu vào bảng trong nguồn dữ liệu. ¾UpdateCommand: cho phép sửa đổi dữ liệu trên bảng trong nguồn dữ liệu. ¾DeleteCommand: cho phép hủy bỏ dữ liệu trên bảng trong nguồn dữ liệu. 16 31Windows Form programming with VB.Net 2005. 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 hoặc tên storedprocedure để thực hiện truy xuất từ nguồn dữ liệu : Đối tượng Connection đã kết nối với CSDL 32Windows Form programming with VB.Net 2005. 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 các mẩu tin từ nguồn dữ liệu ¾DeleteCommand: Đối tượngCommand chứa nội dung lệnh hủy các mẩu tin trên nguồn dữ liệu ¾ InsertCommand: Đối tượng Command chứa nội dung lệnh chèn các mẩu tin mới vào nguồn dữ liệu. ¾Update command: Đối tượng Command chứa nội dung lệnh cập nhật các mẩu tin vào nguồn dữ liệu. 17 33Windows Form programming with VB.Net 2005. OleDbDataAdapter Object (DataAdapter) Các Phương thức OleDbDataAdapter: ¾Fill(): Đổ dữ liệu vào DataTable có sẵn ¾Fill(): Đổ dữ liệu vào DataSet có sẵn. Dữ liệu được lấy về Dataset dưới dạng các DataTable, với tên mặc định là Table1, Table2,… ¾Fill(,): Đổ dữ liệu vào DataSet cho bảng ; nếu chưa có, bảng sẽ được tạo với tên là . (Cách này thường được dùng nhiều hơn) 34Windows Form programming with VB.Net 2005. OleDbDataAdapter Object (DataAdapter) Chú ý: ¾Khi dùng nhiều DataAdapter để đổ dữ liệu của nhiều bảng vào DataSet, nếu không chỉ rõ đổ vào bảng nào trong DataSet, dữ liệu sẽ đổ chung vào một bảng, số cột là tổng số cột có tên khác nhau trong các bảng từ nguồn dữ liệu, trên mỗi dòng cột nào không có dữ liệu tương ứng sẽ mang trị Null. ¾Chúng ta có thể dùng một DataAdapter để đổ dữ liệu của nhiều bảng vào DataSet với nội dung lệnh truy vấn là các lệnh liên tiếp và cách nhau bằng dấu (;) (MS. SQL Server) 18 35Windows Form programming with VB.Net 2005. DataTable Đối tượng chứa dữ liệu trên Dataset Khai báo: Dim Ten_Bien as new DataTable ¾DataTable: được tạo từ tập hợp DataRows và DataColums ¾DataColumns: tập hợp các cột có trong DataTable ¾DataRows: tập hợp các dòng dữ liệu 36Windows Form programming with VB.Net 2005. DataColumn Tạo mới DataColumn Dim Ten_Cot New DataColumn(,) Trong đó: : Tên muốn đặt cho cột : Kiểu dữ liệu của cột, được 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) 19 37Windows Form programming with VB.Net 2005. DataRows DataRows là tập hợp các dòng dữ liệu của bảng. Mọi tham chiếu đến dòng đều thông qua tập hợp này. Sau đây là một số chức năng của DataRow Các thuộc tính: Rows.Count: Cho biết số dòng dữ liệu Trong DataTable Rows.Item(i) hoặc Rows(i): tham chiếu đến dòng i Rows.Item(i)(j): lấy dữ liệu của cột j trên dòng i Rows.Item(i)(“Têncột”): lấy dữ liệu của cột có tên cột trên dòng i (i bắt đầu từ 0) 38Windows Form programming with VB.Net 2005. DataRows Để thêm dòng vào table: TableName.Rows.Add() Ví dụ: thêm một dòng dữ 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 toàn bộ các dòng dữ liệu của bảng 20 39Windows Form programming with VB.Net 2005. Dataview Dataview: là“Khung nhìn” của DataTable, thôngqua Dataview, ta có thể hiển thị dữ liệu lấy từ DataTable theo yêu cầu của người dùng ¾Khai báo: Dim Ten_bien as New DataView() ¾Ta có thể tạo một View từ bảng bằng: Dim Ten_bien As DataView = Ten_Bang.DefaultView 40Windows Form programming with VB.Net 2005. Dataview Thuộc tính và phương thức quan trọng của Dataview ¾RowFilter: Biểu thức lọc của DataView để thay đổi cách hiện thị dữ liệu Cú pháp: Ten_view.RowFilter=“Tencot=Giá tri and/or …” ¾ Sort :Biểu thức sắp xếp, Cú pháp: Ten_view.Sort=“Tencot asc/desc,…” ¾ Find:Tìm kiếm, trả về vị trí dòng thỏa điều kiện, tìm theo cột nào phải sắp xếp dữ liệu theo cột đó, Cú pháp: Ten_View.Sort = “Ten_Cot cần tìm” vi_tri = Ten_view.Find(“Giá trị”) 21 41Windows Form programming with VB.Net 2005. DataSet ¾Dataset là một lớp dùng để thao tác với dữ liệu theo mô hình dữ liệu phi kết nối. ¾Nó được coi như là một kho chứa các table ¾Dữ liệu có thể cập nhật trong các bảng này và khi muốn cập nhật vào CSDL thì DataSet sẽ thực hiện việc cập nhật dữ liệu thông qua DataAdapter 42Windows Form programming with VB.Net 2005. DataSet ¾ Các bảng trong DataSet có thể do DataAdapter Fill vào hoặc cũng có thể là các bảng được tạo thành từ lớp DataTable ¾ Các bảng này được quản lý bởi tập hợp Tables của lớp DataSet. ¾Một Data set có thể lưu trữ nhiều bảng (Table) ¾Khai báo dim Ten_Bien as New DataSet() 22 43Windows Form programming with VB.Net 2005. Các phương thức quan trọng của DataSet: ¾Ten_bien.Tables.Add(): đưa bảng vào DataSet ¾Ten_bien.Tables.Remove(): Xóa bảng ra khỏi DataSet ¾Ten_bien.Tables.Contains(): Kiểm tra bảng có thuộc về DataSet ¾Ten_Bien.Tables.CanRemove(): trả về true nếu có thể xóa bảng ¾Ten_bien.Tables.Clear(): Xóa tất cả các bảng khỏi DataSet ¾Ten_Bien.Dispose: Xóa DataSet ¾Ten_Bien.Clear: Xóa toàn bộ nội dung trong DataSet: 44Windows Form programming with VB.Net 2005. Public Function UpdateRows(ByVal queryString As String, ByVal ds As 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 23 45Windows Form programming with VB.Net 2005. DataGridView Control ¾ Hiển thị dữ liệu dạng khung lưới dữ liệu thường được lấy từ DataTable, DataView hoặc DataSet Cú pháp lấy dữ liệu từ DataTable: Tên_dgv. DataSource = Cú pháp lấy dữ liệu từ DataView: Tên_dgv. DataSource = Cú pháp lấy dữ liệu từ DataSet: Tên_dgv. DataSource = Tên_dgv. DataMember = 46Windows Form programming with VB.Net 2005.
File đính kèm:
- Bài giảng Lập trình ứng dụng Windows Form in VB.NET 2005 - Buổi 6_Visual Basic.NET và Database.pdf