【问题标题】:Connecting to an Access database with ASP.NET使用 ASP.NET 连接到 Access 数据库
【发布时间】:2012-01-12 16:10:04
【问题描述】:

我希望能够在我的 ASP.NET 项目中使用数据库 Foo.accdb。 连接它的最佳方式是什么?我想确保项目可以移植到另一台计算机并且仍然可以工作,所以我应该将数据库文件放在项目文件夹中(与 Default.aspx 所在的文件夹相同)吗?

我需要以某种方式将数据库导入 Visual Studio 吗?

我只想能够使用 OleDb 系列类来操作数据。如果这就是您所要做的,那么 Web.config 中的路径是否相对于 Web.config?

所以我的连接字符串是这样的:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Foo.accdb;User Id=admin;Password=;

【问题讨论】:

标签: asp.net database visual-studio visual-studio-2010 ms-access


【解决方案1】:

通常,人们为此使用 App_Data 文件夹。

一个完整的例子在这里:http://msdn.microsoft.com/en-us/library/445z2s49(v=vs.80).aspx

将它包含在结构中的好处是您可以同时移动站点和数据。但是,如果站点受到威胁,数据库也可能可用(尽管默认情况下,应用程序将配置为不提供此文件夹中的任何文件)。这就是为什么许多人选择将其存储在网站外部的文件夹中。

另请注意,Access 并不是真正的多用户数据库,因此如果您打算让多个用户同时访问数据库,您可能会遇到问题。

另外,您可以使用绝对路径或相对路径在连接字符串中定位访问 mdb。查看 MSDN 链接中添加数据源步骤生成的代码。

【讨论】:

  • 我已将它添加到 App_Data 文件夹,但我在连接字符串中使用什么?我有Dim conn as OleDbConnection = new OleDbConnection(?????)。我已将连接字符串添加到我的 Web.config,但当我尝试将其传递给 OleDbConnection 构造函数时,Intellisense 没有捕捉到它。
  • 你是如何定义你的连接字符串的?通过 web.config 中的 ApplicationSettings 或 ConnectionStrings?您的连接字符串将类似于:“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Foo.accdb;Persist Security Info=False;”如果将其放在名称为“Foo”的连接字符串下,则可以通过 System.Configuration.ConfigurationManager.ConnectionStrings["Foo"].ConnectionString 获取它
  • 是的,我使用了ConfigurationManager.ConnectionStrings("Foo").ConnectionString,它成功了。这就是我一直在寻找的,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多