c. Tìm hiểu về tập hợp Items
1.1. Các thành phần chính của ADO.NET Connection
Connection Command Datareader DataAdapter DataSet 1.1.1. Connection
Chức năng: Là đối tượng có nhiệm vụ thực hiện kết nối đến CSDL để các đối tượng như Command thao tác với CSDL thông qua Connection này.
Cú pháp:
Dim conn As SqlConnection
Dim strConn = "<Chuỗi kết nối đến Server>" conn = New SqlConnection()
conn.ConnectionString = strConn conn.Open()
Kiểm tra kết nối: Sau khi gọi phương thức Open, có thể xem đã kết nối thành cơng hay khơng thơng qua thuộc tính State của Connection
If conn.State = ConnectionState.Open Then Đóng kết nối: Thi hành phương thức Close() để đóng kết nối If conn.State = ConnectionState.Open Then
conn.Close() End If
1.1.2. Command
Công dụng: Dùng để thực hiện các câu lệnh SQL thao tác với CSDL như: Insert, Update, Select, Delete…
Tạo đối tượng Command
1. Cách 1
Dim conn As SqlConnection
Dim strConn = "<Chuỗi kết nối đến Server>" conn = New SqlConnection()
conn.ConnectionString = strConn
conn.Open()
Dim command As New SqlCommand("<Lệnh|Thủ tục SQL>", conn)
2. Cách 2
Dim conn As SqlConnection
Dim strConn = "<Chuỗi kết nối đến Server>" conn = New SqlConnection()
conn.ConnectionString = strConn conn.Open()
Dim command As New SqlCommand() command = conn.CreateCommand() With command
.CommandType = CommandType.StoredProcedure|Text .CommandText = "<Lệnh|Thủ tục SQL>"
' Nếu là thủ tục thì có thêm dịng lệnh sau
.Parameters.Add("@<Biến>", SqlDbType.<Type>, [Size]) .Parameters("@<Biến>").Value = "<Input value>"
End With
Thực thi đối tượng Command
1. ExcuteReader(): Phương thức này sẽ trả về một tập các bản ghi, thường được sử dụng để thực thi các câu lệnh truy vấn như Select. Kết quả có thể lưu trữ trong đối tượng DataReader để thao tác.
Dim Reader As SqlDataReader Reader = command.ExcuteReader()
2. ExcuteScalar(): Phương thức này sẽ trả về phần tử cột đầu tiên hàng đầu tiên trong bảng kết quả.
Phương thức này thường được sử dụng thực hiện câu lệnh truy vấn Select mà kết quả trả về chỉ có một hàng và một cột (Select Count(*) from SinhVien). Dim Reader As <DataType>
3. ExcuteNonQuery(): Được sử dụng để thực thi các câu lệnh truy vấn hành động: Insert, Update, Delete…
Dim Reader As SqlDataReader
Reader = command.ExcuteNonQuery()
1.1.3. DataReader
Cơng dụng: Dùng để đón nhận kết quả trả về từ đối tượng Command. Nó tương tự một RecordSet của ADO. Tuy nhiên dữ liệu là chỉ đọc theo chiều tiến (Readoly).
Khai báo và lấy dữ liệu từ Command
Dim Reader As SqlDataReader Reader = command.ExecuteReader
While Reader.Read ' Duyệt qua từng dòng trong bảng ' Câu lệnh cần xử lý Response.Write(Reader("FieldName")) ... End While Reader.Close() 1.1.4. DataAdapter
Cơng dụng: Có chức năng như một cầu nối giữa nguồn (tệp) dữ liệu và các bảng được cached trong bộ nhớ (đối tượng DataSet). DataAdapter điền dữ liệu vào một DataSet hay DataTable từ một nguồn dữ liệu sử dụng phương thức Fill()
Dim da As New SqlDataAdapter(command) Dim ds As New DataSet
da.Fill(ds, "<Table Name>")
1.1.5. Dataset
Dataset dùng để chứa dữ liệu lấy từ CSDL lớn (SQL, Access) sau đó mọi thơng tin cần thiết được truy xuất từ DataSet
DataSet giống như là hình ảnh về CSDL trong bộ nhớ
DataTable
Là 01 thành phần trong DataSet
DataTable chứa dữ liệu của 01 bảng trong DataSet và thuộc lớp DataTable bao gồm:
Tập hợp Columns thuộc lớp DataColumnColection trong đó mỗi cột là một đối tượng thuộc lớp DataColumn
Tập hợp Rows thuộc lớp DataRowCollection trong đó mỗi cột là một đối tượng thuộc lớp DataRow
DataRelation
DataSet bao gồm tập hợp các table đại diện bởi các đối tượng DataTable và quan hệ giữa các table đó đại diện bởi các đối tượng DataRelation
2. Sử dụng ADO.NET