各们高手们,请帮帮我吧,我快疯掉了啦,怎么总是说找不到数据库呀?????求求你们大家帮帮我吧!!!

dozec 2004-08-09 10:58:07
说明:我的window2003装在f:盘,iis指定h:\GNBuilder文件夹为Web项目的根文件夹(就是创建了一个别名为GNBuilder的虚拟目录),定义TrainSubCollection类的a.vb文件在h:\GNBuilder\module\TrainSub文件夹下
数据库的路径为h:\GNBuilder\db\GNdb.mdb,如何指定数据库的位置?????

------------------------------------------------------------------------------------

a.vb中定义了一个类TrainSubCollection,该类中有一个new()用于初始化数据库连结,由于该Web项目不确定会放置在虚拟主机的什么路径下,如何确定数据库的位置。
我用了Server.MapPath()方法确定数据库的位置,总出错。new()方法代码如下:
Public Sub New()
_objPage = New Page '加下划线"_"的全是私有数据成员:例如有_objPage、_objDataSet等........
'因为是在一个.vb文件中,所以我创建了一个page对象(此前已经倒入system.web.ui命名空间)
'目的是通过page对象的Server属性调用MapPath()方法
_objDataSet = New DataSet

_Provider = "Provider=Microsoft.Jet.OLEDB.4.0"
_Database = "Data Source=" & _objPage.Server.MapPath("/db/GNdb.mdb") '这里用到了MapPath()方法
'我把此行代码改为:
'_Database = "Data Source=" & "../../db/GNdb.mdb")
'同样出错,我快疯啦!!!!!!!

_objConnection = New OleDbConnection(_Provider & ";" & _Database)
_objAdapter = New OleDbDataAdapter(_strSQL, _objConnection)

_objAdapter.Fill(_objDataSet) '第二个参数不写的话,传入到DataSet中的数据的表名就默为数据库表名
End Sub
运行时错误信息如下:
异常详细信息: System.Data.OleDb.OleDbException: 'f:\inetpub\wwwroot\db\GNdb.mdb'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
源文件: H:\GNBuilder\module\TrainSub\TrainSubCollection.vb 行: 44


---------------------------------------------------
各位高手大虾,一定要帮帮我呀,我内急呀~~~~~~~~~~~谢谢你们啦!!!!!
...全文
123 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenen 2004-08-18
  • 打赏
  • 举报
回复
同意写在webConfig文件中
zytp 2004-08-18
  • 打赏
  • 举报
回复
<appSettings>
<add key="ConnectString" value="Data Source={0};Password=;Provider=Microsoft.Jet.OLEDB.4.0" /> <!--数据驱动-->
<add key="DbPath" value="DataBase/Hover.mdb" /><!--物理路径-->
</appSettings>
zytp 2004-08-18
  • 打赏
  • 举报
回复
用物理路径读取access数据库
共用数据调用
private static string Constring;
/**//// <summary>
/// 数据连接字符串
/// </summary>
public static string ConnectString
{
get
{
if(Constring==null)
{
Constring=string.Format(System.Configuration.ConfigurationSettings.AppSettings["ConnectString"],
System.Web.HttpContext.Current.Request.PhysicalApplicationPath+(System.Configuration.ConfigurationSettings.AppSettings["DbPath"]));
return Constring;

}
else
{
return Constring;
}
}
}
web.config
<appSettings>
<add key="ConnectString" value="Data Source={0};Password=;Provider=Microsoft.Jet.OLEDB.4.0" /> <!--数据驱动-->
<add key="DbPath" value="DataBaseHover.mdb" /><!--物理路径-->
</appSettings>

在调用ConnectString时始终是物理路径,不用有上面的虚拟路径的麻烦了
D:\Hover\Hover.Web\DataBase\Hover.mdb

HttpRequest.PhysicalApplicationPath 属性
获取当前正在执行的服务器应用程序的根目录的物理文件系统路径。
guanvee 2004-08-18
  • 打赏
  • 举报
回复
有点乱,你的web程序目录是什么?数据库放哪里了?
dozec 2004-08-18
  • 打赏
  • 举报
回复
up
dozec 2004-08-11
  • 打赏
  • 举报
回复
求各们高手帮帮我吧,我真的不行啦!!!!
dozec 2004-08-10
  • 打赏
  • 举报
回复
由于该Web项目不确定会放置在虚拟主机的什么路径下,所以应该使用相对路径,那么相对路径如何去写了,请指点!!!
qiuji 2004-08-09
  • 打赏
  • 举报
回复
>>>>System.Data.OleDb.OleDbException: 'f:\inetpub\wwwroot\db\GNdb.mdb'不是一个有效的路径。

你的应用程序的目录为f:\inetpub\wwwroot\,不是h:\GNBuilder\
试试这样:
_Database = "Data Source=h:\\GNBuilder\\db\\GNdb.mdb"

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧