2012-04-04 43 views
5

Tôi có một ứng dụng đọc dữ liệu từ dữ liệu Access thường xuyên, có cách nào để sử dụng kết nối tổng hợp không?Kết nối tổng hợp với cơ sở dữ liệu Access

My mở databse phương pháp: -

private bool OpenDatabaseConnection(string databaseName) 
{ 
    try 
    { 
     string connectionString = "Provider = Microsoft.Jet.OLEDB.4.0; " + 
      "Data Source = " + databaseName + ";"; 
     settingsDbConn = new OleDbConnection(connectionString); 
     settingsDbConn.Open(); 
    } 
    catch (Exception) 
    { 
     return false; 
    } 

    return true; 
} 
+0

tôi sẽ đề nghị không bận tâm với kết nối tổng hợp cho các cơ sở dữ liệu JET trừ bạn đang sử dụng tệp db nằm ở vị trí từ xa, nếu không, không có chi phí đáng kể nào tạo ra một kết nối mới - trong phiên bản đơn giản sẽ mở một tệp dưới mui xe. – sll

Trả lời

5

Tôi đồng tình với nhận xét của @sll nhưng, để trả lời câu hỏi của bạn, sau đó thêm chuỗi này đến chuỗi kết nối của bạn

OLE DB Services=-1

này sẽ buộc kết nối tổng hợp với nhà cung cấp JET OleDB.
Tuy nhiên, hãy kiểm tra hiệu suất của ứng dụng của bạn có và không có cài đặt này.
Sự khác biệt sẽ không đáng kể. Và, với cài đặt này, hãy nhớ gửi lại kết nối đến hồ bơi kết nối để đóng kết nối với con.Close hoặc đóng gói kết nối của bạn trong câu lệnh using.

Nhìn vào mã của bạn ở trên, tôi sẽ rất cẩn thận.

1

Tôi không nghĩ bạn sẽ nhận được bất kỳ lợi ích nào từ việc gộp nhóm cho cơ sở dữ liệu truy cập. Nếu hiệu suất là một vấn đề, truy cập là một sự lựa chọn tồi.

1

Đây là những connectionstring thuộc tính có thể được sử dụng:

  • Tất cả các dịch vụ (mặc định)
    OLE DB Services = -1;
  • Tất cả các dịch vụ, trừ tổng hợp
    OLE DB Services = -2;
  • Tất cả các dịch vụ, trừ tổng hợp và tự động nhập ngũ
    OLE DB Services = -4;
  • Tất cả các dịch vụ ngoại trừ con trỏ client
    OLE DB Services = -5;
  • Tất cả các dịch vụ ngoại trừ con trỏ client và tổng hợp
    OLE DB Services = -6;
  • Không có dịch vụ
    OLE DB Services = 0;
Các vấn đề liên quan