2009-09-14 37 views
8

Tôi hiện đang lưu trữ tệp sqlite db của mình trong thư mục App_Data theo mẫu và thực tiễn tốt nhất của ASP.NET.Làm cách nào để tham khảo tệp db Sqlite trong thư mục App_Data cho Ứng dụng web ASP.NET của tôi?

Hiện nay tôi đang sử dụng sau trong webconfig:

<connectionStrings> 
    <add name="sqlite" 
     connectionString="Data Source=|DataDirectory|MyDB; Version=3;" /> 
    </connectionStrings> 

và sau đây trong mã:

 public SqliteDAO(string path) 
     { 
      Connection = new System.Data.SQLite.SQLiteConnection(path); 
     } 

//... 

//where path = |DataDirectory|MyDB 

Nó gây sqlite để tạo ra một cơ sở dữ liệu mới (không có bảng trong nó) và do đó không có cuộc gọi truy cập dữ liệu nào hoạt động vì họ không tìm thấy tên bảng. Làm cách nào để tham chiếu tệp sqlite db trong thư mục App_Data từ mã WebApplication của tôi ??

Cảm ơn!

Trả lời

9

Sử dụng Server.MapPath vào tệp db của bạn. Vì vậy, nó sẽ là một cái gì đó giống như

Server.MapPath(@"~\App_Data\Your.db"); 
+1

Đây có lẽ là một câu hỏi ngớ ngẩn, nhưng làm thế nào bạn sẽ làm điều này từ một tệp không phải là tệp "CodeBehind", nơi bạn không có đối tượng Máy chủ? Bạn có phải vượt qua đối tượng máy chủ, hoặc đường dẫn từ một tập tin Code-Behind? – kdmurray

+1

@kdmurray - bạn có thể sử dụng phương pháp này: http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx –

+0

Cảm ơn Ben. Tôi cũng tìm được giải pháp cho bản thân mình, bằng cách chuyển đối tượng HttpContext đến lớp khác: MyClass c = new MyClass(); c.myFunc (this.Context); – kdmurray

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