2009-09-14 7 views
8

Attualmente sto memorizzando il mio file sqlite db nella cartella App_Data come da best practice e pratiche ASP.NET.Come faccio a fare riferimento al file db Sqlite nella cartella App_Data per la mia applicazione Web ASP.NET?

Attualmente sto utilizzando la seguente nella WebConfig:

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

e il seguente nel codice:

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

//... 

//where path = |DataDirectory|MyDB 

Essa provoca SQLite per creare un nuovo database (senza tabelle in esso) , e quindi nessuna delle mie chiamate di accesso ai dati funziona, dal momento che non stanno trovando i nomi delle tabelle. Come faccio a fare riferimento al file db sqlite nella cartella App_Data dal mio codice WebApplication ??

Grazie!

risposta

9

Utilizzare Server.MapPath per il file db. Quindi sarebbe qualcosa di simile

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

Questa è probabilmente una domanda stupida, ma come si farebbe questo da un file che non è un file "CodeBehind", in cui non si ha l'oggetto Server? Devi passare l'oggetto server o il percorso da un file Code-Behind? – kdmurray

+1

@kdmurray: è possibile utilizzare questo metodo: http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx –

+0

Grazie Ben. Sono riuscito a trovare una soluzione anche a me, passando l'oggetto HttpContext all'altra classe: MyClass c = new MyClass(); c.myFunc (this.Context); – kdmurray

Problemi correlati