Muitos amigos estão preocupados com o problema do caminho relativo do banco de dados ACCESS no programa .net, o que os faz ter que modificar o web.config toda vez que movem o programa.
O caminho do banco de dados na cadeia de conexão do banco de dados.
Muitas pessoas escrevem o seguinte em seu web.config:
O programa está escrito assim:
MyConn = new OleDbConnection(System.Configuration.ConfigurationManager.AppSettings["OLEDBCONNECTIONSTRING"]);//Nota: ConfigurationSettings são escritos de forma diferente no VS2005 e VS2003. Verifique você mesmo as diferenças específicas
. como os seguintes são frequentemente solicitados:
'C:WINDOWSsystem32~App_DataData.mdb' não é um caminho válido. Determine se o nome do caminho está escrito corretamente e se você está conectado ao servidor onde o arquivo está armazenado. Fonte de dados=~App_DataData.mdb
Mesmo que o caminho absoluto esteja correto, web.config deve ser modificado ao transplantar o programa, por isso é mais problemático.
Também existem maneiras de usar Server.MapPath como ASP em web.config para obter o caminho do banco de dados, mas web.config não reconhece Server.MapPath, portanto este método não funciona.
Posteriormente, através da exploração e referência a outros programas, concluí o seguinte método, que pode facilmente transplantar o caminho do programa sem ter que modificar o caminho do banco de dados ACCESS.
O que escrevi em web.config é o seguinte:
Na classe de acesso a dados do programa, retirei "SQLConnString" e "dbPath" e os conectei em uma string "CONN_STRING_NON_DTC"
string somente leitura estática pública CONN_STRING_NON_DTC = System.Configuration.ConfigurationManager.AppSettings["SQLConnString"].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["dbPath"]) + ";";
Este é o método de escrita no VS2005. Defini CONN_STRING_NON_DTC como somente leitura estático para facilidade de uso.
Bom, assim você pode transplantar seu programa à vontade sem se preocupar com o caminho do banco de dados, de uma vez por todas ^_^, adequado para preguiçosos como eu!