Muchos amigos están preocupados por el problema de la ruta relativa de la base de datos ACCESS en el programa .net, lo que les obliga a modificar web.config cada vez que mueven el programa.
La ruta de la base de datos en la cadena de conexión de la base de datos.
Mucha gente escribe lo siguiente en su web.config:
<configuración de la aplicación>
<add key="OLEDBCONNECTIONSTRING" value="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=E:webApp_DataData.mdb)"></add>
</aplicaciónConfiguración>
El programa está escrito así:
MyConn = new OleDbConnection(System.Configuration.ConfigurationManager.AppSettings["OLEDBCONNECTIONSTRING"]);// Nota: Los ajustes de configuración se escriben de manera diferente en VS2005 y VS2003. Verifique las diferencias específicas usted mismo
cuando el programa se esté ejecutando
.ya que a menudo se le solicita lo siguiente:
'C:WINDOWSsystem32~App_DataData.mdb' no es una ruta válida. Determine si el nombre de la ruta está escrito correctamente y si está conectado al servidor donde está almacenado el archivo. Fuente de datos=~App_DataData.mdb
Incluso si la ruta absoluta es correcta, web.config debe modificarse al trasplantar el programa, por lo que es más problemático.
También hay formas de utilizar Server.MapPath como ASP en web.config para obtener la ruta de la base de datos, pero web.config no reconoce Server.MapPath, por lo que este método no funciona.
Más tarde, a través de la exploración y referencia a otros programas, concluí el siguiente método, que puede trasplantar fácilmente la ruta del programa sin tener que modificar la ruta de la base de datos ACCESS.
Lo que escribí en web.config es lo siguiente:
<appSettings>
<agregar clave="SQLConnString" valor="provider=microsoft.jet.oledb.4.0;fuente de datos="/>
<agregar clave="dbPath" valor="~/App_Data/mydata.mdb"/>
</aplicaciónConfiguración>
En la clase de acceso a datos del programa, saqué "SQLConnString" y "dbPath" y los conecté en una cadena "CONN_STRING_NON_DTC".
cadena pública estática de solo lectura CONN_STRING_NON_DTC = System.Configuration.ConfigurationManager.AppSettings["SQLConnString"].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["dbPath"]) + ";";
Este es el método de escritura en VS2005. Definí CONN_STRING_NON_DTC como solo lectura estática para facilitar su uso.
Bueno, de esta manera puedes trasplantar tu programa a tu antojo sin preocuparte por la ruta de la base de datos, de una vez por todas ^_^, ¡apto para gente vaga como yo!