intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Phạm Hồng Phương | Ngày: | Loại File: PDF | Số trang:23

128
lượt xem
13
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

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

  1. Buổi 6: Visual Basic.NET & Database Windows Form programming with VB.Net 2005. 1 Giới thiệu: Các công nghệ truy cập dữ liệu của Microsoft như DAO (Data Access Object), ODBC (Open DataBase Connectivity), RDO (Remote Data Object), ADO Connectivity (ActiveX Data Objects) Tuy nhiên từ khi .NET 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 Execute commands Manage disconnected data (quản lý dữ liệu đã ngắt kết nối). Windows Form programming with VB.Net 2005. 2 1
  2. Giới thiệu (tt): Với ADO.NET người lập trình có thể viết ít mã lệnh thao tác cơ sở dữ liệu hơn so với các công nghệ trước trong các ứng dụng client-server hoặc các ứng dụng trên desktop. Mặt khác, trong ASP.NET từ phiên bản .NET Framework 2.0 trở lên có thêm các thao tác với cơ sở dữ liệu mà không sử dụng ADO.NET như SqlDataSource, LINQ hoặc Profiles. Windows Form programming with VB.Net 2005. 3 Buổi 6: VB.NET & Database (CSDL) Mục tiêu của bài: Sử dụng được các lớp trong thư viện ADO.NET tương tác với CSDL: Mô tả cách thức kết nối và giao tiếp với CSDL Mô tả được chức năng và cách thức sử dụng các lớp DataSet, Datatable, Datarow, DataColumn để đọc dữ liệu. Đọc dữ liệu với DataReader và hiển thị trên các lớp kế thừa từ ComboBox, Listbox, TextBox... Cập nhật dữ liệu với Dataset và DataAdapter Windows Form programming with VB.Net 2005. 4 2
  3. Kiến trúc ADO.NET ADO.NET là đối tượng dùng để thao tác với CSDL trong .NetFramework; các ngôn ngữ lập trình trong Visual studio (trong đó DataAdapter có VB.Net) dùng phương thức kết nối này để giao tiếp với CSDL Windows Form programming with VB.Net 2005. 5 Kiến trúc ADO.NET Có thể chia làm 2 phần chính: Managed Provider Component: bao gồm các đối tượng như: DataAdapter, DataReader, Connection, Command giữ nhiệm vụ làm việc trực tiếp với dữ liệu như database, file,… Content Component: bao gồm các đối tượng như DataSet, DataTable, DataView, DataRow, DataColumn, DataRelation …đại diện cho dữ liệu thực sự cần làm việc. Windows Form programming with VB.Net 2005. 6 3
  4. Content Component: Content Component: là các đối tượng đại diện cho dữ liệu cần xử lý, bao gồm các đối tượng sau: DataSet DataTable DataView DataRow DataColumn DataRelation Windows Form programming with VB.Net 2005. 7 Content Component: DataSet: là hình ảnh của CSDL trong bộ nhớ, nó chứa các bảng dữ liệu trong các DataTable và các mối quan hệ trong Datarelation DataTable: giống như bảng dữ liệu, dùng chứa dữ liệu trên ứng dụng Dataview: là “Hình ảnh” của DataTable, một DataTable có thể có nhiều Dataview, thông qua Dataviewt có thể sắp xếp dữ liệu, lọc dữ liệu trong DataTable DataColumn: chứa các cột trong DataTable DataRow: chứa các dòng trong DataTable Windows Form programming with VB.Net 2005. 8 4
  5. Content Component: DataRelation: chứa các mối ràng buộc trong CSDL, có thể chứa: * Unique Constraint or Primary Key Constraint: đảm bảo tính duy nhất về giá trị của một cột trong table * Foreign Key Constraint: ràng buộc khóa ngoại Windows Form programming with VB.Net 2005. 9 Managed Provider Component Microsoft cung cấp hai bộ Provider component trong phiên bản ADO.NET là OLEDB và SQL Server OLEDB managed provider: dùng thao tác với các loại CSDL (Access, Excel, Oracle, IBM…), bao gồm các đối tượng sau: OleDBConnection OleDBCommand OleDBParemeter OleDBDataReader OleDBDataAdapter OLEDB: Namespace Imports System.Data.OLEDB Windows Form programming with VB.Net 2005. 10 5
  6. Managed Provider Component (tt) SQL Server managed provider: dùng thao tác với CSDL SQL Server, bao gồm các đối tượng: SQLConnection SQLCommand SQLParemeter SQLDataReader SQLDataAdapter Để sử dụng Provider nào ta phải viết lệnh Imports (khai báo Namespace) trên đầu đối mỗ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 các đối tượng: OracleConnection OracleCommand OracleParemeter OracleDataReader OracleDataAdapter Ocracle: Imports Oracle.DataAccess.Client Windows Form programming with VB.Net 2005. 12 6
  7. Managed Provider Component (tt) Connection: liên kết với CSDL, các đối tượng khác phải thông qua đối tượng Connection để thao tác với CSDL Command: là đối tượng dùng thực hiện các câu truy vấn (SQL) Parameter: là đối tượng dùng truyền tham số cho Command DataReader: chứa dữ liệu lấy từ CSDL, chỉ đọc, chỉ duyệt từ trên xuống DataAdapter: là đối tượng trung gian giữa CSDL và DataSet, thông qua đối tượng này ta có thể lấy dữ liệu từ CSDL đưa lên Dataset và cập nhật dữ 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 chúng ta sử dụng (Access, SQl Server, Ocrale) các Managed Provider Component phải được dùng hợp lý: VD: OleDbConnection OleDbCommand SqlConnection SqlCommand OracleConnection OracleCommand …… Windows Form programming with VB.Net 2005. 14 7
  8. OleDbConnection Object () Dùng tạo kết nối giữa ứng dụng và CSDL Các thuộc tính (Properties) của 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: chỉ ra trạng thái của đối tượng kết nối (Connection Object) hiện tại 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 của Connection Open: mở kết nối đến CSDL cùng với các thông tin đã được chúng ta khai báo trong ConnectionString Close: Đóng kết nối với nguồn dữ liệu. Sử dụng phương thức này để đóng Connection đang mở. Dispose: Xoá mọi tài nguyên liên quan đến Connection trên vùng nhớ Windows Form programming with VB.Net 2005. 16 8
  9. OleDbConnection Object (tt) Khai báo OleDbConnection dùng MS Access: ‘Imports provider ở đầu màn hình Code Imports SysTem.Data Imports SysTem.Data.OleDb ‘ Khai báo và 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 trong 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 trong cùng thư mục file chạy chương trình ta có thể 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 9
  10. 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úc Sub khởi tạo class clsDataLayer thú khở tạ 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 & “ Lỗi mở CSDL!", “Thông báo lỗi“) MsgBox(ex.Message mở bá lỗ End Try End Sub ‘ Kết thúc Sub mở kết nối CSDL thú mở nố End Class Windows Form programming with VB.Net 2005. 19 OleDbCommand Object: Là đối tượng được dùng để các truy vấn trên CSDL Khai báo: thường dùng 2 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 này chuỗi truy vấn strSQL và objConnection phải được khai báo trước hoặc đã được gọi ở thủ tục hoặc hàm nào đó trước khi khai báo theo kiểu này) Windows Form programming with VB.Net 2005. 20 10
  11. Properties thường dùng của Command Object CommandText: truy vấn SQL, tên bảng hoặc tên stored procedure muốn thực hiện trên nguồn dữ liệu. Commandtype: Giá trị chỉ định cho biết nội dung CommandText phải dùng là gì với các giá trị sau: Text: (mặc định) một câu lệnh SQL TableDirect: tên của một hoặc nhiều bảng Storedprocedure: tên một thủ tục nội lại trong CSDL (Các giá trị này khi lập trình VB.Net sẽ tự hiển thị để chọn) (Cá giá trị lậ trì sẽ hiể thị để chọ Windows Form programming with VB.Net 2005. 21 Properties thường dùng của Command Object Connection: Đối tượng Connection sử dụng cho Command Đố tượ sử Parameters: Tập hợp các tham số dùng trong Command, hợ cá số thường dùng cho truy vấn có ĐK (WHERE) thườ dù vấ có 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 là 2 biến nhập liệu được truyền vào Windows Form programming with VB.Net 2005. 22 11
  12. Các Phương thức của Command Object: 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à: CommandBehavior.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 CommandBehavior.CloseConnection: đối tượng connection sẽ đóng khi đối tượng DataReader đóng Windows Form programming with VB.Net 2005. 23 Các Phương thức của Command Object: ExecuteNonquery: Gọi thực hiện các câu truy vấn cập nhật dữ liệu: INSERT, UPDATE, DELETE 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: Phươ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. phươ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 Windows Form programming with VB.Net 2005. 24 12
  13. 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" Source=D:\ VB.NET\ ADO.NET\ QuanLyHoaDon\ 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 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) Windows Form programming with VB.Net 2005. 26 13
  14. OleDbReader Object: (tt) 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. Windows Form programming with VB.Net 2005. 27 OleDbReader Object: (tt) 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 Windows Form programming with VB.Net 2005. 28 14
  15. 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 Windows Form programming with VB.Net 2005. 29 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. Windows Form programming with VB.Net 2005. 30 15
  16. 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 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 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. Windows Form programming with VB.Net 2005. 32 16
  17. 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) Windows Form programming with VB.Net 2005. 33 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) Windows Form programming with VB.Net 2005. 34 17
  18. 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 Windows Form programming with VB.Net 2005. 35 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) Windows Form programming with VB.Net 2005. 36 18
  19. 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) Windows Form programming with VB.Net 2005. 37 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 Windows Form programming with VB.Net 2005. 38 19
  20. 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 Windows Form programming with VB.Net 2005. 39 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ị”) Windows Form programming with VB.Net 2005. 40 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2