2009-09-14 9 views
8

Actualmente estoy almacenando mi archivo sqlite db en la carpeta App_Data según el mejor patrón y prácticas de ASP.NET.¿Cómo hago referencia al archivo db Sqlite en la carpeta App_Data para mi aplicación web ASP.NET?

Actualmente estoy usando lo siguiente en el webconfig:

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

y la siguiente en el código:

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

//... 

//where path = |DataDirectory|MyDB 

Causa SQLite para hacer una nueva base de datos (sin mesas en ella) , y por lo tanto ninguna de mis llamadas de acceso a datos funciona, ya que no están encontrando los nombres de la tabla. ¿Cómo hago referencia al archivo sqlite db en la carpeta App_Data desde mi código de aplicación Web?

Gracias!

Respuesta

9

Use Server.MapPath en su archivo db. Por lo que sería algo así como

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

Esta es probablemente una pregunta tonta, pero ¿cómo hacer esto desde un archivo que no es un archivo "CodeBehind", en el que no tiene el objeto de servidor? ¿Tiene que pasar el objeto del servidor o la ruta desde un archivo Code-Behind? – kdmurray

+1

@kdmurray: puede usar este método: http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx –

+0

Gracias Ben. Me las arreglé para encontrar una solución a esto yo también, pasando el objeto HttpContext a la otra clase: MyClass c = new MyClass(); c.myFunc (this.Context); – kdmurray

Cuestiones relacionadas