OleDb数据库动态连接问题
我在编写网站的时候使用的ACCESS数据库,需要动态连接数据库文件,我使用的ConnectionString是:
<add key= "ConnectString " value= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=App_Data/webdata.mdb; "/>
我在本地测试的时候是正常的,但是上传到服务器后测试出现了错误,信息如下:
Server Error in '/ ' Application.
'c:\windows\system32\inetsrv\App_Data\webdata.mdb '不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details:
System.Data.OleDb.OleDbException: 'c:\windows\system32\inetsrv\App_Data\webdata.mdb '不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
Source Error:
Line 34: OleDbDataAdapter GetData = new OleDbDataAdapter( "SELECT * FROM Photos ORDER BY Uptime ",myconn);
Line 35: DataSet GetAll = new DataSet();
Line 36: GetData.Fill(GetAll);
Line 37:
Line 38: int Records = GetAll.Tables[0].Rows.Count;
Source File: d:\webhost\qdssftp\web\App_Code\PhotoDB.cs Line: 36
请问我需要怎么做才能正确地创建一个动态连接数据库的语句呢?
------解决方案--------------------读取的时候应该用:
Server.MapPath( "~/ ") + ConfigurationManager.AppSettings[ "ConnectString "];
得到数据库的路径。
------解决方案-------------------- <add key= "ConnectString " value=@ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + Server.MapPath( "./App_Data/webdata.mdb ") "
------解决方案--------------------没有在IIS中做虚拟目录吧,或者虚拟目录有问题
------解决方案--------------------建议将数据库路径写在绝对路径,这样就不用转换那么麻烦了。
<add key= "ConnectString " value= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\wwwroot\MyWebProject\App_Data\webdata.mdb; "/>
------解决方案--------------------你路径搞错了.
------解决方案--------------------路径 要绑定 根 目录 .
~app\dfs\sdfsdf\d.mdb
------解决方案--------------------HttpContext.Current.Server.MapPath( "~/ ")