2014-09-23 19 views
5

Trong ứng dụng Visual Basic của tôi, tôi có một tệp cơ sở dữ liệu truy cập mà tôi đang sử dụng. Nó xuất hiện trong cửa sổ trình khám phá giải pháp. Mọi thứ hoạt động tốt cho đến khi tôi cài đặt. Tệp cơ sở dữ liệu không đi kèm với cài đặt vì một số lý do. Tôi đoán tôi cần phải chỉnh sửa chuỗi kết nối trong thời gian chạy, nhưng tôi không chắc chắn. Tôi đã không làm bất cứ điều gì như thế này trước đây, và tôi không thể tìm thấy thông tin về nó.Làm cách nào để sao chép tệp cơ sở dữ liệu truy cập bằng ứng dụng của tôi?

Nếu ai đó có thể gửi cho tôi hướng dẫn hoặc đưa ra giải thích ngắn gọn về cách sử dụng cơ sở dữ liệu truy cập khi ứng dụng đã được cài đặt.

Khi chương trình của tôi chạy, nó tạo ra một thư mục trong

User\App Data\Roaming\CreatedFolder\Resources\DatabaseFile.accdb 

Vì vậy, làm thế nào để tôi đặt con đường này mà không biết đường dẫn đầy đủ đến App dữ liệu?

+0

bản sao có thể có của [Triển khai cơ sở dữ liệu SQL cho ứng dụng VB.NET] (http://stackoverflow.com/questions/12253978/sql-database-deployment-for-vb-net-app) – jbutler483

Trả lời

3

Bạn có thể sử dụng

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 

hoặc

Environment.GetEnvironmentVariable("APPDATA") 

Cả hai đều phải trả lại một cái gì đó tương tự như

C:\Users\Gord\AppData\Roaming 

vì vậy bạn có thể xây dựng chuỗi kết nối của bạn như thế này:

Dim dbPath = _ 
     Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & _ 
     "\CreatedFolder\Resources\DatabaseFile.accdb" 
Dim connStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath 
+0

Tôi gặp lỗi khi thử thêm vào chuỗi kết nối. – xRuhRohx

+0

@xRuhRohx Tôi đã cập nhật câu trả lời của mình. –

+0

Tôi đã sử dụng trình hướng dẫn để thiết lập kết nối cơ sở dữ liệu của mình, vì vậy làm cách nào để thay đổi chuỗi kết nối khi chạy? – xRuhRohx

2

Con đường tôi sẽ làm điều này sẽ được:

  1. Chọn Add New Data Source . . . từ cửa sổ Data Source trong Visual Studio
  2. Chọn Database từ danh sách hiện ra, và nhấn tiếp theo
  3. Bấm tiếp theo
  4. Trong trang Choose your data connection của trình hướng dẫn, hãy nhấp vào New connection
  5. Chọn Microsoft Access Database File từ hộp danh sách và nhấp tiếp theo
  6. Chọn một bản sao của tập tin cơ sở dữ liệu mà không có trong thư mục của bạn và nhập bất kỳ thông tin đăng nhập
  7. Bấm OK
  8. Bây giờ Visual Studio sẽ hỏi bạn:

    Kết nối bạn chọn sử dụng một tệp dữ liệu địa phương không nằm trong dự án hiện tại . Bạn có muốn sao chép tệp vào dự án và và sửa đổi kết nối không?

    Nếu bạn sao chép tệp dữ liệu vào dự án của mình, tệp sẽ được sao chép vào thư mục đầu ra của dự án mỗi khi bạn chạy ứng dụng. Nhấn F1 cho thông tin về cách kiểm soát hành vi này.

Nhấp "Có" và Visual Studio sẽ thêm cơ sở dữ liệu vào dự án của bạn và tạo chuỗi kết nối trỏ đến cơ sở dữ liệu đã sao chép.

  1. Bây giờ, bạn có thể muốn lưu chuỗi kết nối trong Ứng dụng.Cấu hình để bạn không phải xây dựng lại nó mỗi khi bạn muốn sử dụng cơ sở dữ liệu. Nhiều khả năng điều này sẽ lưu một chuỗi kết nối sử dụng |DataDirectory|. Sửa đổi nội dung của trang này khi bạn thấy phù hợp.
  2. Làm thủ tục thông qua phần còn lại của trình hướng dẫn và định cấu hình cơ sở dữ liệu của bạn khi bạn cần.

Trình hướng dẫn phải định cấu hình chuỗi kết nối và tạo thông tin sao cho ứng dụng của bạn sẽ hoạt động bất kể bạn lấy nó ở đâu.

EDIT - chuỗi kết nối của tôi vì nó được lưu trong App.config trông giống như

<connectionStrings> 
     <add name="SOAccessDatabase.My.MySettings.Students_2000formatConnectionString" 
      connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Students_2000format.mdb" 
      providerName="System.Data.OleDb" /> 
    </connectionStrings> 

Tôi cũng có hành động xây dựng các tập tin cơ sở dữ liệu của thiết lập để "Copy Luôn luôn."

+0

Sự cố tôi gặp phải khi tôi rời khỏi nó dưới dạng | DataDirectory | nó tạo ra một thư mục bên trong thư mục Local trong AppData và vì một số lý do không sao chép cơ sở dữ liệu sang nó. Tôi luôn gặp lỗi. – xRuhRohx

+0

Đây là những gì sẽ xảy ra khi tôi cài đặt và chạy .... 'C: \ Users \ Neil \ AppData \ Local \ Apps \ 2.0 \ Data \ KBBE6L8Y.4H8 \ 2X1QXHV5.A2H \ gulb..tion_20d7bfc1bd30efa8_0001.0000_dbc5cc6b3df538bc \ Data \ Resources \ TML.accdb 'không phải là một đường dẫn hợp lệ. Đảm bảo rằng tên đường dẫn được viết đúng chính tả và bạn được kết nối với máy chủ lưu trữ tệp. – xRuhRohx

+0

@xRuhRohx, hãy xem bản chỉnh sửa và xem nó có giúp ích không. Ứng dụng này truy cập dữ liệu tốt như bây giờ. Hi vọng điêu nay co ich. –

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