首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

郁闷!(这个有关问题 大家有遇到过吗?)

2012-01-09 
郁闷!(这个问题 大家有遇到过吗?)在我的项目里有一个类库DbClass里有一个Dbconn.cxprivateOleDbConnection

郁闷!(这个问题 大家有遇到过吗?)
在我的项目里有一个类库DbClass   里有一个Dbconn.cx  
private   OleDbConnection   conn=new   OleDbConnection(System.Configuation.ConfiguationSettings.AppSetting[ "connstr "].Tostring()+System.Configuation.ConfiguationSettings.AppSetting[ "dbpath "].Tostring())

private   void   OpenConn()
{
conn.open();
}

项目下还有一个WebUI   有一个default.aspx   ,三个文件夹分别为   admin   和   Controls
admin   里有   login.aspx   .Controls   里有ucontrl.ascx   .   DataFiles   下有个xx.mdb
文件。
WebUI   下的   web.config   里有
<appSettings>
<add   key= "connstr "   value= "provider=microsoft.jet.oledb.4.0;Data   Source= "   />
<add   key= "dbpath "   value= "DataFiles/xx.mdb "   />
</appSettings>

在default.aspx,ucontrl.ascx,login.aspx   都会调用到conn.open()   这个函数。
在default.aspx,ucontrl.ascx   里都是正常的。在login.aspx   下就不正常啦!
它提示数据文件路径不对。
在default.aspx   和ucontrl.ascx   里显示的数据库路径是
d:\my   document\gxq\WebUI\DataFiles\xx.mdb   这个是正确的。
在login.aspx   里   它找出的路径是  
d:\my   document\gxq\WebUI\admin\DataFiles\xx.mdb   所以它找不到数据文件
为什么会出现这样的问题呢?
为什么ucontrol不会这样?
高手们给点意见。




[解决办法]
<add key= "dbpath " value= "DataFiles/xx.mdb " /> 用绝对路径,
因为你的login.aspx在admin文件夹里,所以才会是
d:\my document\gxq\WebUI\admin\DataFiles\xx.mdb
[解决办法]
把 <add key= "dbpath " value= "DataFiles/xx.mdb " /> 这句改为
<add key= "dbpath " value= "/DataFiles/xx.mdb " /> 试试
[解决办法]
你的连接语句是错的
用绝对路径不要用相对路径
给你个例子

<add name= "sconn " connectionString= "Provider=Microsoft.Jet.OleDb.4.0 ;Data Source=|DataDirectory|\data.mdb "/>

放在ms自带的app_data文件夹下面的名为data.mdb的数据库
[解决办法]
因为你的login.aspx是在admin下的.所以DataFiles/xx.mdb这个就不对了.
[解决办法]
ucontrl.ascx 中是根据调用页面的位置确定的.
[解决办法]
value= "/虚拟目录名称/DataFiles/xx.mdb "
[解决办法]
如果是asp2.0就可以value = "~/DataFiles/xx.mdb "
[解决办法]
private OleDbConnection conn=new OleDbConnection(System.Configuation.ConfiguationSettings.AppSetting[ "connstr "].Tostring()+System.AppDomain.CurrentDomain.BaseDirectory //根目录(例:C:\Inetpub\wwwroot\test\)
+System.Configuation.ConfiguationSettings.AppSetting[ "dbpath "].Tostring())
[解决办法]
数据库后辍名改一下,不然会被下载的
例如改成.config

热点排行