2010-01-20 23 views
6

Tôi có một ứng dụng asp.net nTier. Lớp truy cập dữ liệu là một DataSet mạnh mẽ bao gồm nhiều DataTables với DataAdapters. Khi người dùng đăng nhập, họ chọn cơ sở dữ liệu nào để kết nối (từ một bảng trong cơ sở dữ liệu thành viên). Tôi cần phải vượt qua chuỗi kết nối được chọn vào đối tượng Số liệu sẽ vẫn giữ nguyên cho người dùng đó cho đến khi họ đăng nhập lại.Chuỗi kết nối động cho một tập dữ liệu được đánh máy mạnh

Tôi nghĩ rằng câu trả lời có thể là tạo một lớp một phần của đối tượng Số liệu nơi tôi có thể truyền chuỗi kết nối vào hàm tạo. Im không chắc chắn làm thế nào để đi về điều này mặc dù.

Chúc mừng

Trả lời

3

Bạn có thể thực hiện việc này với một phần học.

Giả sử dữ liệu đánh máy của bạn được gọi HurrDurr:

public partial class HurrDurr 
{ 
    public HurrDurr(string connex) 
    {  
    this._connection = new global::System.Data.SqlClient.SqlConnection(); 
    this._connection.ConnectionString = connex; 
    } 
} 

_connection chỉ khởi tạo nếu nó là null lần đầu tiên kết nối tài sản nội bộ được truy cập.

+0

Tôi đã thử đề xuất của bạn trong vb.net nhưng có lỗi: "Lỗi 33 _connection" không phải là thành viên của DAL.ds1 ". Bất kỳ ý tưởng mà im đi sai? – SausageFingers

+0

@fly Tôi không biết tệp .ds1 là gì. Bạn có thể nhìn vào mã được tạo bởi công cụ tập dữ liệu đã nhập (mở rộng xsd và xem các tệp mã). Phiên bản VB có thể lưu kết nối trong một tên biến khác. – Will

+0

Xin lỗi tôi nên rõ ràng hơn. DAL.ds1 đề cập đến tên dự án "DAL" và tên tập dữ liệu "ds1". "ds1" là lớp được tạo ra từ xsd, tôi giả định đây là những gì bạn gọi là HurrDurr. Sau khi xem mã, tôi thấy biến thành viên _connection trong bộ điều hợp bảng? Đây có phải là những gì tôi cần để tạo ra một lớp học chống lại? – SausageFingers

3

Cuối cùng đã đến cuối phần này. Trong một mô-đun mới, tôi đã tạo một lớp một phần cho bộ điều hợp bảng, nơi mà tôi cần thay đổi chuỗi kết nối, một lỗi mà tôi đã tạo ban đầu là không chỉ định đúng không gian tên.

Dưới đây là partial class Tôi tạo ra cho phép tôi để tự động thay đổi chuỗi kết nối của một trong adapter bàn của tôi cho một bảng gọi là tblOptions:

Namespace ds1TableAdapters 
    Partial Public Class tblOptionsTableAdapter 
     Sub ChangeConnString(ByVal newConn As String) 
      Me._connection.ConnectionString = newConn 
     End Sub 
    End Class 
End Namespace 

Thanks for the help Will, nó đã cho tôi đi theo Đúng hướng.

Các vấn đề liên quan