Asp.Net 连接access 数据库

szp895 2010-11-21 01:52:09
各位好,我用C#做了一个网站,有些基本会员登陆和注册功能。
我自己在本地电脑配置IIS的时候测试过,功能都正常。
但是我拿到学校用学校的虚拟服务器(学校老师给我们提供的虚拟服务器,支持Access)测试发现连接不上数据库,而且没有错误页面提示,怎么解决?

我数据库连接代码:

private OleDbConnection getConn()
{
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += "Data Source=";
string path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
path = Path.Combine(path, "App_Data\\ServiceData.mdb");
strConnection += path;
OleDbConnection objConnection = new OleDbConnection(strConnection);
return objConnection;
}


很奇怪,我在自己电脑上配置IIS都正常。
是不是得在IIS里面的ConnectionString自己加上一段什么才行?

谢谢
...全文
280 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
szp895 2010-11-22
  • 打赏
  • 举报
回复
呵呵 多谢楼上各位 我的问题解决了。找学校的专家弄得。妈妈的 原来学校弄得虚拟机里面没有MS Access 数据库的驱动,默认的只是SQL,需要自己手动上网下驱动,connection string 代码没问题,所以没显示任何错误页面。
另外,connection string 改成

string strConnection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|ServiceData.mdb;Persist Security Info=False";

是Microsoft.ACE.OLEDB.12.0 而不是 Microsoft.Jet.OLEDB.4.0, 具体原因我也不知道为啥。
有谁弄明白了,告诉我一声阿
yanghua_yanghua 2010-11-22
  • 打赏
  • 举报
回复
我也有这样的问题,关注!
孟子E章 2010-11-21
  • 打赏
  • 举报
回复
string strConnection = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|ServiceData.mdb;";

是最好的写法,mdb文件放在网站下的App_Data文件夹下面。
另外,iis需要把网站或者虚拟目录设置为应用程序

另外,无论如何,总得显示出错误信息的吧
mingl11 2010-11-21
  • 打赏
  • 举报
回复

帮顶下
szp895 2010-11-21
  • 打赏
  • 举报
回复
还是不行 估计不是数据库连接的问题了 我虚拟机直接用visual studio 运行都可以
用浏览器就失败。
会不会有其他什么原因?
IIS里面需不需要有什么要改动的 ?我有点怀疑服务器配置有问题
dalmeeme 2010-11-21
  • 打赏
  • 举报
回复
连接字符串用这个:
string strConnection = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|ServiceData.mdb;Persist Security Info=False"
直接写,不要分开拼字符串。
szp895 2010-11-21
  • 打赏
  • 举报
回复
大哥大姐们 帮帮忙 替我想想 还有哪些可能性导致我连接数据库不行?
或者有没有可能是别的问题?
因为我注册 或 登陆 网页没显示数据库连接失败或者数据库找不到等信息,这有没有可能是别的问题?

拜托了
szp895 2010-11-21
  • 打赏
  • 举报
回复
回复 shichao102471077:

多谢鼓励!

我在我的电脑IIS上试验 一点问题没有。。。。放到学校的虚拟机里面就连接不上数据库,很郁闷。
现在该代码用sql的话不知道来不来得及 我的报告和演示ppt都弄好了,现在改的话 又得花很久改报告和ppt了

晕菜了。
shichao102471077 2010-11-21
  • 打赏
  • 举报
回复
兄弟,不要急,为什么不用sql ,调试下,到觉得有错误的地方,慢点,一步一步的看,仔细点,相信自己,
szp895 2010-11-21
  • 打赏
  • 举报
回复
救命啊 我明天就要演示了 现在数据库居然不能用 为啥我在自己机子上可以咧 远程虚拟机权限我也设置了 为啥还是不行啊……

崩溃……
szp895 2010-11-21
  • 打赏
  • 举报
回复
回复 zming :
我的access放在App_Data目录下。
我刚刚把App_Data目录属性都设置了完全控制权限。
是不是 我设置有问题?
可还是连接不上数据库...

第三点,访问Access数据库的连接字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\xxxxxx.mdb
这个我在代码里面都写了,需不需要在IIS 里面 另外再写一下 ?

谢谢
zming 2010-11-21
  • 打赏
  • 举报
回复
ASP.NET使用Access数据库:

(1) Access数据库存放在 App_Data 目录下。
(2) App_Data 目录拥有 IIS 匿名帐户(IUSR_xxxxxx)的完全控制权限。或给 Everyone 完全控制权限
(3) ASP.NET 中 访问Access数据库的连接字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\xxxxxx.mdb

szp895 2010-11-21
  • 打赏
  • 举报
回复
我也在想 如果有提示还好办点。
路径如果错了的话,应该会有提示说找不到XX文件之类的错误吧
whb147 2010-11-21
  • 打赏
  • 举报
回复
是不是路径的问题?
没有错误提示这就比较郁闷

62,271

社区成员

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

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

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

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