2009-09-14 9 views
8

Je stocke actuellement mon fichier db sqlite dans le dossier App_Data selon le meilleur modèle et les meilleures pratiques d'ASP.NET.Comment puis-je référencer le fichier db Sqlite dans le dossier App_Data pour mon application Web ASP.NET?

Actuellement, je suis en utilisant ce qui suit dans le webconfig:

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

et ce qui suit dans le code:

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

//... 

//where path = |DataDirectory|MyDB 

Il provoque sqlite de faire une nouvelle base de données (sans tables à l'intérieur) , et donc aucun de mes appels d'accès aux données ne marche, car ils ne trouvent pas les noms des tables. Comment puis-je référencer le fichier sqlite db dans le dossier App_Data à partir de mon code WebApplication ??

Merci!

Répondre

9

Utilisez Server.MapPath dans votre fichier db. Donc, ce serait quelque chose comme

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

Ceci est probablement une question stupide, mais comment voulez-vous faire à partir d'un fichier qui est pas un fichier « CodeBehind », où vous n'avez pas l'objet serveur? Avez-vous besoin de passer l'objet serveur ou le chemin d'un fichier Code-Behind? – kdmurray

+1

@kdmurray - vous pouvez utiliser cette méthode: http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx –

+0

Merci Ben. J'ai réussi à trouver moi-même une solution en passant l'objet HttpContext à l'autre classe: MyClass c = new MyClass(); c.myFunc (this.Context); – kdmurray

Questions connexes