• 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
    Chuyên mục: Lập trình