asp.net中如何连接Access数据库?后台是单独一个文件夹。

jiaxianglei 2008-07-17 12:51:37
后台在Man文件夹下,Access数据库在Man/App_Data下面。
Web.Config中:
<appSettings>
<add key="AccessConn" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source ={0}\\Man\\App_Data\\Company.mdb"></add>
</appSettings>

Connection.cs中:
public class DataBaseDB//连接Access数据库
{
public static String ConnectionString = String.Format(ConfigurationManager.AppSettings["AccessConn"], HttpContext.Current.Server.MapPath("."));
}


浏览时总是提示:'D:\我的软件\ASP.NET\Company\Man\Man\App_Data\Company.mdb'不是一个有效的路径。
数据库是存在:'D:\我的软件\ASP.NET\Company\Man\App_Data\Company.mdb'下面的,怎么会提示上面的错误呢?
...全文
262 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaxianglei 2008-07-24
  • 打赏
  • 举报
回复
操作系统或是分区格式的问题,如果分区格式为NTFS,则在网站文件夹的属性中,添加ervryone或asp.net用户,给全部权限.
如果分区格式为FAT32,则不会出现这个错误提示.但是NTFS安全性高.
jiaxianglei 2008-07-17
  • 打赏
  • 举报
回复
原来后台和前台放在一个文件夹下的时候,
Web.Config中:
<appSettings>
<add key="AccessConn" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source ={0}\\App_Data\\Company.mdb"> </add>
</appSettings>

这样就可以使用,后台放到单独的文件夹下就不行了。
atlasroben 2008-07-17
  • 打赏
  • 举报
回复
using System.Data;
using System.Data.OleDb;

......

string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"Data Source=MapPath("Authors.mdb");//这里是相对路径

OleDbConnection objConnection=new OleDbConnection(strConnection);

objConnection.Open();
objConnection.Close();

......
jiaxianglei 2008-07-17
  • 打赏
  • 举报
回复
VS中运行正常,为什么在IIS中不行呢?
jiaxianglei 2008-07-17
  • 打赏
  • 举报
回复
谢谢,我在VS中运行一切正常。
但是在IIS中添加产品保存时提示:
“/Company”应用程序中的服务器错误。
操作必须使用一个可更新的查询。
Jinglecat 2008-07-17
  • 打赏
  • 举报
回复
. 表示当前路径,这在 UNIX/DOS/Window 是习惯用法

~/ 表示虚拟目录跟路径,这是 ASP.NET 服务器(控件)的特殊规定

Server.MapPath 的本意是将指定的虚拟路径映射为实际的物理路径(磁盘)
那么,
Server.MapPath(.); 获取当前运行页面的物理路径
Server.MapPath("~/"); 获取虚拟目录的物理路径
Jinglecat 2008-07-17
  • 打赏
  • 举报
回复
public static String ConnectionString = String.Format(ConfigurationManager.AppSettings["AccessConn"], HttpContext.Current.Server.MapPath("~/"));

Jinglecat 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jiaxianglei 的回复:]
~和.有什么区别
<appSettings>
<add key="AccessConn" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source ={0}\\App_Data\\Company.mdb"> </add>
</appSettings>

{0}是什么意思,我在网上找的,但不知什么意思
[/Quote]

先看这句

string str = String.Format("{0} {1}", "hello", "world"); // 输出 "hello world"

{0}, {1} 是占位符!,用第二个,三个...参数替换
jiaxianglei 2008-07-17
  • 打赏
  • 举报
回复
~和.有什么区别
<appSettings>
<add key="AccessConn" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source ={0}\\App_Data\\Company.mdb"> </add>
</appSettings>

{0}是什么意思,我在网上找的,但不知什么意思
jiaxianglei 2008-07-17
  • 打赏
  • 举报
回复
2个目录的不能在Web.Config中配置吗?
iuhxq 2008-07-17
  • 打赏
  • 举报
回复
public class DataBaseDB//连接Access数据库
{
public static String ConnectionString = String.Format(ConfigurationManager.AppSettings["AccessConn"], HttpContext.Current.Server.MapPath("~"));
}


要用~,不要用.
xl888 2008-07-17
  • 打赏
  • 举报
回复
1个 Dir的在webconfig 里配置
jiaxianglei 2008-07-17
  • 打赏
  • 举报
回复
asp.net 和IIS中浏览都不行。
jiaxianglei 2008-07-17
  • 打赏
  • 举报
回复
我原来是把\\Man去掉了,浏览时就提示
'D:\我的软件\ASP.NET\Company\App_Data\Company.mdb'不是一个有效的路径。
数据库路径不对。因为我是放在'D:\我的软件\ASP.NET\Company\Man\App_Data\Company.mdb'这里的。
fellowcheng 2008-07-17
  • 打赏
  • 举报
回复
应该都可以呀,我在本地测试没有问题
jiaxianglei 2008-07-17
  • 打赏
  • 举报
回复
我是在Web.Config中配置连接数据库的,以后维护也方便,而且后台是放在一个文件夹Man下的,和前台位置不一样,不知如何同样能调用数据库?
宝_爸 2008-07-17
  • 打赏
  • 举报
回复
把\\Man去掉试一试
<appSettings>
<add key="AccessConn" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source ={0}\\Man\\App_Data\\Company.mdb"> </add>
</appSettings>

62,025

社区成员

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

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

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

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