How do I reference the Sqlite db file in the App_Data folder for my ASP.NET Web Application?
Asked Answered
F

1

9

I'm currently storing my sqlite db file in the App_Data folder as per ASP.NET best pattern and practices.

Currently I'm using the following in the webconfig:

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

and the following in code:

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

//...

//where path = |DataDirectory|MyDB

It causes sqlite to make a NEW database (with no tables in it), and thus none of my data access calls work, since they aren't finding the table names. How do I reference the sqlite db file in the App_Data folder from my WebApplication code??

Thanks!

Fabianfabianism answered 14/9, 2009 at 12:26 Comment(0)
B
10

Use Server.MapPath to your db file. So it would be something like

Server.MapPath(@"~\App_Data\Your.db");
Bombazine answered 14/9, 2009 at 12:35 Comment(4)
This is probably a silly question, but how would you do this from a file that isn't a "CodeBehind" file, where you don't have the Server object? Do you have to pass the server object, or the path from a Code-Behind file?Assorted
@Assorted - you can use this method: msdn.microsoft.com/en-us/library/…Paddlefish
Thanks Ben. I managed to find a solution to this myself too, by passing the HttpContext object to the other class: MyClass c = new MyClass(); c.myFunc(this.Context);Assorted
@kdmurray, it is bit late but you can always use static System.Web.HttpContext.Current object if you are working in asp.net and don't need to pass it around.Whereunto

© 2022 - 2024 — McMap. All rights reserved.