• Thứ Ba, 16/01/2007 14:00 (GMT+7)

    Cách lập trình tạo file .config

    Câu hỏi :
    Xin hỏi cách lập trình tạo file .config để thay đổi tên máy chủ khi triển khai ứng dụng trên máy khác mà không phải thay đổi các mặc định khi viết chương trình như sqlconnection, sqldataadapter, datasource... Ứng dụng viết bằng VB .Net và CSDL đặt trên SQL Server 2K. 
     

    Trả lời :

    Nếu dùng các đối tượng cao cấp như sqlConnection, sqlDataAdapter... để truy xuất database thì đoạn code VB .Net của bạn rất độc lập với địa chỉ server database, với công nghệ quản lý database, do đó bạn chỉ cần viết 1 lần đoạn code đó và dùng lại nhiều lần ở nhiều chương trình khác nhau hay chạy trên nhiều máy khác nhau.
     Thật vậy, nếu khảo sát kỹ đoạn code truy xuất database dùng các đối tượng sqlConnection, sqlDataAdapter..., bạn sẽ thấy thông tin duy nhất có liên quan đến database cần truy xuất nằm trong chuỗi ConnectionString được dùng để tạo đối tượng Connection. Đoạn code điển hình để truy xuất database trên SQL Server nào đó có dạng:
     'định nghĩa và thiết lập nội dung cho biến myConectionString
     Dim myConnectString As String = "..."
     'định nghĩa đối tượng connection kết hợp với database cần truy xuất
     Dim myConnection As New SqlConnection(myConnectString)
     myConnection.Open()
     'đoạn code truy xuất dữ liệu trên database liên quan theo yêu cầu
     ....
     Xét đoạn code trên, thông tin liên quan đến database cần truy xuất chỉ nằm trong chuỗi được gán vào biến myConnectionString. Có 2 cách để miêu tả chuỗi ConnectionString này:
     1. Dùng tên DSN (Data Source Name) trong chuỗi, thí dụ:
     'định nghĩa và thiết lập nội dung cho biến myConectionString
     Dim myConnectString As String = "DSN=MyDataBase"
     Với cách này, chuỗi chỉ chứa tên DSN luận lý chứ không chứa thông tin chi tiết cụ thể về địa chỉ server, về username/password truy xuất, về tên database cần truy xuất nên có thể nói dùng chuỗi DSN làm cho lệnh truy xuất database rất tổng quát, không cần hiệu chỉnh lại. Mỗi khi địa chỉ server, username/password truy xuất, hay tên database cần truy xuất bị thay đổi, bạn chỉ cần hiệu chỉnh lại thông tin về DSN liên quan. Việc định nghĩa/hiệu chỉnh thông tin của DSN được thực hiện thủ công trên HĐH bằng cách vào Control Panel.Administrative Tools.Data Sources (ODBC) rồi khai báo các thông số liên quan đến database cần truy xuất như tên Provider, địa chỉ server, tên database, username/password truy xuất...
     1. Miêu tả các thông tin chi tiết về database cần truy xuất trong chuỗi, thí dụ:
     'định nghĩa và thiết lập nội dung cho biến myConectionString
     Dim myConnectString As String = "user id=sa;password=Jx$442pt;initial catalog=northwind;data source=mySQLServer;Connect Timeout=30"
     Trong cách này, nếu các thông tin cụ thể về database cần truy xuất bị biến động và bạn muốn đoạn code VB .Net không bị thay đổi thì bạn có thể xây dựng động chuỗi ConnectionString, các thông tin biến động về database sẽ được nhập từ người dùng (thông qua 1 form giao diện) hay từ file cấu hình .config theo định dạng thích hợp (dạng text là đơn giản nhất). Đoạn code của ứng dụng có dạng điển hình như sau:
     'định nghĩa các biến chứa các thông tin cụ thể về database
     Dim username As String
     Dim password As String
     Dim initdatabase As String
     Dim SQLServer As String
     'thiết lập nội dung các biến trên từ form nhập liệu hay từ file config
     'định nghĩa và thiết lập nội dung cho biến myConectionString
     Dim myConnectString As String = "user id=" & username & ";password=" & password & ";initial catalog=" & initdatabase & ";data source=" & SQLServer & ";Connect Timeout=30"
     'định nghĩa đối tượng connection kết hợp với database cần truy xuất
     Dim myConnection As New SqlConnection(myConnectString)
     myConnection.Open()
     'đoạn code truy xuất dữ liệu trên database liên quan theo yêu cầu
     ....
     
     

    Chuyên mục: Cơ sở dữ liệu