Thứ Năm, 03/03/2005 16:00 (GMT+7)
|
|
|
|
|
|
Câu hỏi :
Lập trình trên môi trường Visual Studio.NET truy nhập CSDL SQL Server 2000 sử dụng các namespace (directive) System, System.Data, System.Data.SqlClients và khai báo SqlDataAdapter nhưng không kết nối được. Tôi đã tìm trong Referrences và hệ thống nhưng không thấy namespace System.Data.SqlClients. Xin hỏi tìm namespace System.Data.SqlClients ở đâu và cách tham chiếu trong chương trình.
Trả lời :
Namespace "System.Data.SqlClient" (không có ký tự "s" sau SqlClient) là sẵn có của môi trường Visual Studio .Net, ứng dụng nào cần dùng nó chỉ cần dùng lệnh Imports để khai báo. Trong CD MSDN của Microsoft (từ phiên bản 2001 trở đi) có chứa nhiều trang web giới thiệu chi tiết và cụ thể về các thành phần trong namespace này. Thí dụ nhỏ sau đây demo việc dùng các đối tượng trong namespace "System.Data.SqlClient" để truy xuất bảng "Products" trong database "Northwind" của SQL Server chạy trên máy cục bộ bằng VB .Net rồi hiển thị 2 field ProductID và ProductName của các record lên listbox của Form để tham khảo. Để tạo thí dụ dưới đây, bạn hãy chạy Visual Studio .Net, tạo 1 project VB mới dùng template "Windows Application". Sau khi máy tạo Form trống ban đầu, bạn hãy tạo 1 listbox với tên mặc định là ListBox1 trong Form rồi viết code sau cho hàm Form1_Load():
'Khai báo namespace cần dùng
Imports System.Data.SqlClient
Public Class Form1
Inherits System.Windows.Forms.Form
...
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
' xây dựng lệnh truy xuất SQL
Dim mySelectQuery As String = "SELECT ProductID, ProductName FROM Products"
'tạo cầu nối tới database cần truy xuất
Dim myConnection As New SqlConnection("user id=sa; database=northwind; server=localhost")
Dim myCommand As New SqlCommand(mySelectQuery, myConnection)
myConnection.Open()
Dim myReader As SqlDataReader
myReader = myCommand.ExecuteReader()
' lặp đọc từng record và hiển thị kết quả lên listbox
While myReader.Read()
ListBox1.Items.Insert(0, myReader.GetInt32(0) & ", " & myReader.GetString(1))
End While
' đóng đối tượng myReader.
myReader.Close()
' đóng đối tượng cầu nối.
myConnection.Close()
End Sub
End Class