Initial Catalog=<Database_Name>; Integrated Security=<True/False>;
UserName=<User_Name>;Password=<Password>” Dim <Object_Connection_Name> as New SqlConnection(String_Connection_Name)
Trong đó:
- Object_Connection_Name: Tên đối tượng kết nối
- String_Connection_Name: Chuỗi kết nối
- Các tham số của chuỗi kết nối (Connection String Parameters): Phương thức để chuỗi kết nối được xây dựng sẽ phụ thộc vào Data Provider mà ta đang sử dụng. Khi truy xuất SQL Server, ta thường cung cấp Server và Database.
+ Server: Tên của SQL Server mà ta muốn truy xuất. Nó thường là tên của máy tính đang chạy SQL Server. Ta có thể sử dụng (local) hoặc localhost nếu SQL Server trên cùng một máy đang chạy ứng dụng. Nếu sử dụng các thể hiện tên của SQL Server, thì tham số nên chứa tên của máy tính theo sau là đấu gạch chéo ngược và tiếp đó là thể hiện tên của SQL Server.
+ Initial Catalog: Tên cơ sở dữ liệu muốn kết nối
+ Integrated Security: True (SSPI)/False chỉ định kết nối theo cơ chế bảo mật của Windows Login (True) hay cơ chế bảo mật của SQL Server (False).
Có thể bạn quan tâm!
- Cấu Hình Cơ Sở Dữ Liệu Đích
- Nhập Thông Số Cho Tài Khoản Trong Windows
- Các Mô Hình Kết Nối Ứng Dụng Đến Sql Server
- SQL Server - 31
- Form Sắp Xếp Và Tìm Kiếm Sinh Viên
- Xác Định Các Thông Số Của Cơ Sở Dữ Liệu
Xem toàn bộ 323 trang tài liệu này.
+ User ID: Tên người dùng sử dụng để kết nối tới cơ sở dữ liệu. Tài khoản với user ID này phải tồn tại trong SQL Server và được phép truy cập đến cơ sở dữ liệu chỉ định. Có nghĩa là khi đó Integrated Security=False.
+ Password: Là mật khẩu của người dùng đã chỉ định.
Ví dụ 1: Kết nối đến cơ sở dữ liệu “QLTS” được đặt tại máy có tên Server là “Admin-0812qix” bằng chế độ bảo mật của Window.
Imports System.Data.SqlClient Dim strConnection as String= “Server= Admin-0812qix; Initial Catalog=QLTS; Integrated Security=True”
Dim Conn as New SqlConnection(strConnection)
Ví dụ 2: Kết nối đến cơ sở dữ liệu QLTS được đặt tại máy có tên Server là “Admin-0812qix” bằng chế độ bảo mật của SQL Server với tên người dùng là “LinhGiang” và mật khẩu là “12345”.
Imports System.Data.SqlClient Dim strConnection as String=
“Server= Admin-0812qix; Initial Catalog=QLTS;
UserName=LinhGiang;Password=12345”
Dim Conn as New SqlConnection(strConnection)
- Mở và đóng kết nối: Sau khi khởi tạo đối tượng kết nối với một chuỗi kết nối, ta có thể gọi các phương thức của đối tượng SqlConnection như là Open và Close.
Cú pháp:
<Object_Connection_Name>.Open()
<Object_Connection_Name>.Close()
Ví dụ: Mở, đóng kết nối vừa tạo ở trên cnn.Open()
cnn.Close()
b) Lớp SqlCommand
Lớp SqlCommand đại diện cho các câu lệnh SQL để thực hiện truy vấn dữ liệu lưu trữ. Các câu lệnh là truy vấn Select, Insert, Update, hoặc Delete. Có thể là các chuỗi SQL hoặc gọi một Stored Procedure. Và truy vấn được thực hiện có thể chứa các tham số hoặc không chứa các tham số. Kiến trúc của lớp SqlCommand có một vài biến số, nhưng phương thức đơn giản nhất để khởi tạo một đối tượng SqlCommand với không tham số (Parameters). Tiếp theo, sau khi đối tượng đã được khởi tạo, ta có thể thiết lập các thuộc tính ta cần để thực hiện các thao tác.
Hình 8.4. Mối liên hệ giữa lớp Command và các lớp khác
Cú pháp:
Dim <Object_Command_Name> As New SqlCommand() Ví dụ: Tạo một đối tượng Command có tên là cmd
Dim cmd As New SqlCommand()
- Các thuộc tính của Command
+ Thuộc tính Connection: Dùng để kết nối đến cơ sở dữ liệu. Để câu lệnh được thực hiện thành công, thì kết nối phải được mở ở thời điểm thực hiện.
+ Thuộc tính CommandText: Dùng để chỉ định chuỗi SQL hoặc Stored Procedure sẽ được thực hiện. Hầu hết các cơ sở dữ liệu quy định đặt các giá trị của chuỗi trong cặp dấu “Các giá trị của chuỗi “.
+ Thuộc tính CommandType: Loại nội dung trong CommandText với các giá
trị
Text: (mặc định) Một câu lệnh SQL Storedprocedure: Tên một thủ tục nội TableDirect: Khi CommandText là tên bảng
+ Thuộc tính Paramater: Xác định các tham số cần thiết cho câu lệnh SQL hoặc
Stored Procedure. Ta có thể truy cập vào tập các tham số của đối tượng SqlCommand bằng việc chỉ định thuộc tính Parameters. Sau khi truy cập vào tập tham số, ta có thể sử dụng các thuộc tính và các phương thức của nó để tạo một hoặc nhiều hơn các tham số trong tập các tham số. Mục đích của việc sử dụng tham số là khi một vài giá trị trong câu lệnh chỉ biết khi thực hiện câu lệnh hoăc cần thực hiện câu lệnh nhiều lần với các giá trị khác nhau.
Các bước thực hiện:
Tham số hóa câu lệnh: ? hoặc @[tên tham số].
Tạo các parameters tương ứng cho command.
Đặt giá trị cho các parameter mỗi khi dùng command thực hiện câu lệnh.
- Các phương thức của Command
+ Phương thức ExecuteNonQuery: Để thực thi các câu lệnh SQL: Insert, Update, Delete, Stored Procedure,…
+ ExcuteReader: Phương thức này nên sử dụng khi thực thi phát biểu Select, mẫu tin trả về trong SqlDatareader. Chú ý, lớp DataReader là chỉ đọc, dữ liệu theo một chiều ngang theo một chiều.
+ Phương thức ExcuteScalar: Thực hiện lệnh Command và chỉ trả về cột đầu tiên của dòng đầu tiên. Thường thực hiện theo các hàm thống kê.
Ví dụ 1: Thực hiện việc thêm một ngành học vào bảng Ngành với mã ngành là “NH012”, tên ngành là “Khoa học máy tính”, chỉ tiêu tuyển sinh là 120.
Cách 1:
Imports System.Data.SqlClient Dim strConnection as String= “Server= Admin-0812qix; Initial Catalog=QLTS; Integrated Security=True”
Dim Conn as New SqlConnection(strConnection)
Dim Comm As New SqlCommand() Comm.Connection = Conn
Comm.CommandText = “INSERT INTO Nganh(Man,Tenn, chitieu)” + “VALUES(„NH012‟ „Khoa học máy tính‟,120)” Comm.CommandType = Text
Conn.Open() Comm.ExecuteNonQuery() Conn.Close()
Cách 2:
Imports System.Data.SqlClient Dim strConnection as String= “Server= Admin-0812qix; Initial Catalog=QLTS; Integrated Security=True”
Dim Conn as New SqlConnection(strConnection) Dim Comm As New SqlCommand() Comm.Connection = Conn
Comm.CommandText = “INSERT INTO Nganh(Man,Tenn, chitieu)” + “VALUES(@man, @tenn, @ct)”
Comm.CommandType = Text Comm.Parameters.Add(“@man”)=“NH012” Comm.Parameters.Add(“@tenn”)=“Khoa học máy tính” Comm.Parameters.Add(“@ct”)=120
Conn.Open() Comm.ExecuteNonQuery() Conn.Close()
Ví dụ 2: Đưa ra số lượng các thí sinh đã đăng kí dự thi Imports System.Data.SqlClient
Dim strConnection as String= “Server= Admin-0812qix; Initial Catalog=QLTS; Integrated Security=True”
Dim Conn as New SqlConnection(strConnection) Dim Comm As New SqlCommand() Comm.Connection = Conn
Comm.CommandText = “Select Count(*) From Thisinh”
Dim Comm As New SqlCommand(strSQL, Conn) Conn.Open()
Dim Soluong As Integer=Comm.ExecuteScalar() MsgBox(“Số lượng khách hàng” & Cstr(Soluong)) Conn.Close()
c) Lớp SqlDataAdapter:
Data Adapters hoạt động như một cầu nối giữa Data Source và các đối tượng lưu dữ liệu trong bộ nhớ, như là DataSet. Để truy xuất dữ liệu nguồn, chúng sử dụng các đối tượng Command. Các đối tượng Command này liên quan đến các kết nối. Vì vậy, Data Adapter này dựa vào các đối tượng Command và Connection để truy xuất và điều khiển dữ liệu nguồn.
Hình 8.5. Lớp SqlDataAdapter
Cú pháp:
Dim <DataAdapter_Name> As New SqlDataAdapter() Ví dụ: Tạo một đối tượng Data Adapter có tên là da Dim da As New SqlDataAdapter()
- Các thuộc tính của SqlDataAdapter
+ Thuộc tính UpdateCommand: Dùng để cập nhật dữ liệu vào DataSet hoặc DataTable.
+ Thuộc tính DeleteCommand: Dùng để xóa bản ghi vào DataSet hoặc DataTable.
+ Thuộc tính InsertCommand: Dùng để thêm mới bản ghi vào DataSet hoặc DataTable.
+ Thuộc tính SelectCommand: Dùng để đưa dữ liệu vào từ SQL Server vào DataSet hoặc DataTable. Khi ta muốn đọc dữ liệu từ kho dữ liệu, đầu tiên ta phải thiết lập thuộc tính SelectCommand của lớp SqlDataAdapter. Thuộc tính này là đối tượng sqlCommand và nó được dùng để chỉ định dữ liệu được select và select dữ liệu như thế nào. Vì vậy, thuộc tính SelectCommand cũng có các thuộc tính của nó. Ta cần thiết lập chúng như là thiết lập các thuộc tính trên các câu lệnh thông thường. Hai thuộc tính thông dụng đó là:
Connection: Thiết lập đối tượng SqlConnection để truy xuất vào Data Store.
CommandText: Thiết lập các câu lệnh SQL hoặc tên Stored Procedure được sử dụng để tìm kiếm dữ liệu.
Ví dụ 1: Thiết lập SelectCommand với một chuỗi SQL để đưa ra thông tin gồm số báo danh, họ tên, ngày sinh của các thí sinh có quê quán là „Nam Định‟
Imports System.Data.SqlClient Dim strConnection as String= “Server= Admin-0812qix;
Initial Catalog=QLTS; Integrated Security=True”
Dim Conn as New SqlConnection(strConnection) Dim da As New SqlDataAdapter() da.SelectCommand = New SqlCommand() da.SelectCommand.Connection = cnn da.SelectCommand.CommandText =
“SELECT sbd, hoten, ngaysinh FROM Thisinh Where quequan=‟Nam Định‟“ Ví dụ 2: Thiết lập SelectCommand với một Stored Procedure có tên là sp_SelectTS.
Imports System.Data.SqlClient Dim strConnection as String= “Server= Admin-0812qix; Initial Catalog=QLTS; Integrated Security=True”
Dim Conn as New SqlConnection(strConnection) Dim da As New SqlDataAdapter() da.SelectCommand.Connection = Conn da.SelectCommand.CommandText = “sp_SelectTS” da.SelectCommand.CommandType= CommandType.StoredProcedure
- Các phương thức của SqlDataAdapter
Phương thức Fill: Sử dụng SelectCommand để lấy dữ liệu từ dữ liệu nguồn đưa vào DataSet.
Cú pháp: SqlDataAdapter.Fill(DataSet,String) Trong đó:
+ DataSet: Xác định một đối tượng DataSet hợp lệ mà dữ liệu được lưu trữ ở trong đó.
+ String: Tên của bảng có trong DataSet.
Chú ý rằng, một DataSet có thể chứa nhiều bảng. Ta có thể sử dụng bất cứ tên nào ta muốn, nhưng thường tốt nhất là sử dụng tên của các bảng nơi mà dữ liệu trong cơ sở dữ liệu đến.
Ví dụ:
Imports System.Data.SqlClient Dim strConnection as String= “Server= Admin-0812qix; Initial Catalog=QLTS; Integrated Security=True”
Dim Conn as New SqlConnection(strConnection) Dim da As New SqlDataAdapter() da.SelectCommand.Connection = Conn da.SelectCommand.CommandText = “sp_SelectTS” da.SelectCommand.CommandType= CommandType.StoredProcedure
Dim Ds as DataSet = New DataSet() Da.Fill(Ds,“Thisinh”)
Phương thức Fill sử dụng thuộc tính SelectCommand.Connection để kết nối tới cơ sở dữ liệu. Nếu kết nối đã được mở, Data Adapter sẽ sử dụng nó để thực hiện SelectCommand. Và nếu như Connection đã đóng thì Data Adapter sẽ mở nó, thực hiện SelectCommand, và sau đó đóng trở trở lại. Bây giờ ta đã có dữ liệu trong bộ nhớ, và có thể bắt đầu thao tác nó không phụ thuộc vào Data Source. Tuy nhiên, lớp DataSet không có Sql tại vị trí bắt đầu tên lớp của nó. Bởi vì DataSet không nằm trong namespace System.Data.SqlClient, nó nằm trong lớp cha Namespace System.Data. Các lớp trong tên miền này có liên quan căn bản với thao các dữ liệu trong bộ nhớ.
d) Lớp DataSet:
Lớp DataSet được dùng để lưu trữ dữ liệu được lấy từ một kho dữ liệu và lưu trữ dữ liệu trong bộ nhớ trên máy khách. Đối tượng DataSet chứa một tập các bảng, các mối liên hệ và các ràng buộc thích hợp với dữ liệu đọc từ kho dữ liệu. Nó hoạt động như một bộ máy cơ sở dữ liệu gọn nhẹ, cho phép ta lưu trữ dữ liệu, sửa đổi dữ liệu và chạy các truy vấn dựa vào việc sử dụng đối tượng DataView.
Dữ liệu trong DataSet không được kết nối từ kho dữ liệu, và ta có thể làm việc với dữ liệu độc lập với kho dữ liệu. Ta có thể thao tác dữ liệu trong đối tượng DataSet bằng việc thêm, sửa, xóa bản ghi. Ta có thể áp các thay đổi này quay trở lại kho dữ
liệu gốc sau khi sử dụng Data Adapter. Dữ liệu trong đối tượng DataSet được duy trì trong Extensible Markup Language (XML), nghĩa là ta có thể lưu trữ DataSet như là một file hoặc đơn giản chuyển nó trên Network. XML được bảo vệ từ ta, những người phát triển, và chúng ta không bao giờ nên sửa trực tiếp XML. Tất cả các thao tác sửa XML được thực hiện thông qua các thuộc tính và các phương thức của lớp DataSet.
Nhiều nhà phát triển thích sử dụng XML và lựa chọn để thao tác XML biểu diễn trực tiếp DataSet, nhưng điều này không cần thiết. Giống như bất cứ bản tài liệu XML nào, DataSet có một giản đồ-schema (một file cấu trúc của dữ liệu trên một hoặc nhiều XML files). Khi ta sinh ra một kiểu Dataset dùng wizard, XML Schema Definition (XSD) file được thêm vào Solution Explorer. File này là một XML schema cho dữ liệu QLDiemSVDataSet chứa nó. Từ đây, Visual Studio .NET tạo ra một lớp kế thừa từ DataSet và sử dụng giản đồ cụ thể này. Một lược đồ DataSet chứa các thông tin về các bảng dữ liệu, mối liên hệ và các ràng buộc được lưu trữ trong DataSet. Thêm nữa, nó được bảo vệ từ phía ta, và ta không cần biết XML làm việc với DataSet.
Các phương thức của DataSet:
- Thêm một đối tượng DataTable
<Tên DataSet>.Tables.Add(<Tên bảng>)
- Xóa một đối tượng
<Tên DataSet>.Tables.Remove(<Tên bảng>)
<Tên DataSet>.Tables.RemoveAt(<chỉ số bảng>)
- Loại bỏ tất cả đối tượng DataTable:
<DataSet>.Tables.Clear()
- Kiểm tra sự tồn tại:
<Dataset>.Tables.Contains(<Tên bảng>)
- Kiểm tra tồn tại và có thể xóa được
<DataSet>.Tables.CanRemove(<Tên bảng>)
- Đếm số lượng DataTable:
<DataSet>.Tables.Count(<thuộc tính>)
- Ghi ra file XML:
<DataSet>.WriteXml(ten_file_xml)
- Đọc từ file XML:
<DataSet>.ReadXml(ten_file_xml)
e) Lớp DataView
Lớp DataView được sử dụng để sắp xếp, lọc, tìm kiếm, sửa dữ liệu từ DataSet. Một DataView là bindable, nghĩa là nó có thể bị buộc vào các điều khiển giống như cách DataSet bị buộc vào các điều khiển. Một DataSet có thể chứa một số các đối