1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng lập trình ứng dụng visuabasic bài 6 phạm đình sắc

23 208 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 319,79 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Content Component: Content Component: là các đối tượng đại diện cho dữ liệu cần ¾ 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 q

Trang 1

™Các công nghệ truy cập dữ liệu của Microsoft như

DAO (Data Access Object), ODBC (Open DataBase

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

Trang 2

Windows Form programming with VB.Net 2005.

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.

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

Trang 3

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

Trang 4

Windows Form programming with VB.Net 2005.

Content Component:

Content Component:

là các đối tượng đại

diện cho dữ liệu cần

¾ 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

Trang 5

* 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

10

Windows Form programming with VB.Net 2005.

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

¾OLEDB: Namespace Imports System.Data.OLEDB

Managed Provider Component

Trang 6

Windows Form programming with VB.Net 2005.

™ SQL Server managed provider: dùng thao tác với

CSDL SQL Server, bao gồm các đối tượng:

™Để 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

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:

¾Ocracle: Imports Oracle.DataAccess.Client

Managed Provider Component (tt)

Trang 7

Windows Form programming with VB.Net 2005.

¾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

¾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

Managed Provider Component (tt)

14

Windows Form programming with VB.Net 2005.

SQl Server, Ocrale) các Managed Provider

Component phải được dùng hợp lý:

Trang 8

Windows Form programming with VB.Net 2005.

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

OleDbConnection Object ()

™ 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ớ

OleDbConnection Object (tt)

Trang 9

Windows Form programming with VB.Net 2005.

¾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 =" & “<đườngdẫn\Tên CSDL>”

Dim cn as New OleDbConnection(strConnection)

Windows Form programming with VB.Net 2005.

¾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“

Trang 10

Windows Form programming with VB.Net 2005.

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

Public Sub GetConnection()

Dim ConnectionState As ConnectionState

Try

ConnectionState = cn.State

If cn.State = Data.ConnectionState.Closed Then

cn.Open() End If

™ 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)

OleDbCommand Object:

Trang 11

Windows Form programming with VB.Net 2005.

¾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)

22

Windows Form programming with VB.Net 2005.

thường dùng cho truy vấn có ĐK (WHERE)

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)

Trang 12

Windows Form programming with VB.Net 2005.

¾ExecuteReader: Phương thức này (không hoặc có 1

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:

¾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:

Trang 13

Windows 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

Windows 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)

Trang 14

Windows 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)

™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)

Trang 15

Windows 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)

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

Trang 16

<lệnh>: 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

<objConnection>: Đối tượng Connection đã kết nối với

CSDL

OleDbDataAdapter Object (DataAdapter)

™Các thuộc tính (Properties):

dung lệnh truy xuất các mẩu tin từ nguồn dữ liệu

dung lệnh hủy các mẩu tin trên nguồn dữ liệu

dung lệnh chèn các mẩu tin mới vào nguồn dữ liệu.

dung lệnh cập nhật các mẩu tin vào nguồn dữ liệu.

Trang 17

Windows Form programming with VB.Net 2005.

OleDbDataAdapter Object (DataAdapter)

™Các Phương thức OleDbDataAdapter:

¾Fill(<datatable>): Đổ dữ liệu vào DataTable có sẵn

¾Fill(<dataset>): Đổ 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(<dataset>,<tênDatatable>): Đổ dữ liệu vào

DataSet cho bảng <tênDatatable>; nếu chưa có,

bảng sẽ được tạo với tên là <tênDatatable> (Cách

này thường được dùng nhiều hơn)

34

Windows 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)

Trang 18

Windows 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

DataColums

DataColumn

™Tạo mới DataColumn

Dim Ten_Cot New DataColumn(<tên cột>,<kiểudữ liệu>)

Trong đó:

<Têncột>: Tên muốn đặt cho cột

<Kiểu dữ liệu>: 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)

Trang 19

Windows 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)

38

Windows Form programming with VB.Net 2005.

DataRows

™Để thêm dòng vào table: TableName.Rows.Add(<dong>)

™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(<chỉsố>): 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

Trang 20

Windows 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

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ị”)

Trang 21

¾Nó được coi như là

một kho chứa các table

Tables của lớp DataSet.

(Table)

¾Khai báo

dim Ten_Bien as New DataSet()

Trang 22

Windows Form programming with VB.Net 2005.

Các phương thức quan trọng của DataSet:

¾Ten_bien.Tables.Add(<tênbảng>): đưa bảng vào DataSet

¾Ten_bien.Tables.Remove(<tênbảng>): Xóa bảng ra khỏi

¾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:

Public Function UpdateRows(ByVal queryString As String, ByVal ds

As DataSet, ByVal tableName As String) As DataSet

Try

da.SelectCommand = New OleDbCommand(queryString, cn)

Dim cb As OleDbCommandBuilder = New

Trang 23

Windows 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 = <Biến DataTable>

™Cú pháp lấy dữ liệu từ DataView:

Tên_dgv DataSource = <Biến DataView>

Cú pháp lấy dữ liệu từ DataSet:

Tên_dgv DataSource = <Biến DataSet>

Tên_dgv DataMember = <Tên Bảng>

46

Windows Form programming with VB.Net 2005.

Ngày đăng: 04/12/2015, 07:10

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm