1

我已将一个 MDB 表添加到我的 ASP.NET WebAPI 项目的 App_Data 文件夹中。

但由于这似乎是一件很奇怪的事情(我想这就是原因),我找不到任何关于如何进行编程连接的示例。有人有任何示例代码吗?

更新

我试过这个:

using (var conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\PlatypusBill\Data\PlatypusDAT03.mdb;Persist Security Info=False;"))
using (var comm = conn.CreateCommand())
{
    comm.CommandText = "SELECT * FROM HERE2ETERNITY WHERE B = FinaleOfSeem";
    comm.CommandType = CommandType.Text;
    conn.Open();
    var returnValue = comm.ExecuteScalar(); // <-- fails here with "The remote server returned an error: (500) Internal Server Error."
}

...但正如评论所示,我得到一个错误。

更新 2

它现在运行,使用以下代码:

using (var conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;User ID=poisonousSpur;Password=venomousSpur;Data Source=C:\PlatypusBill\DATA\PlatypusDAT01.MDB;Persist Security Info=False;Jet OLEDB:System database=C:\PlatypusBill\Data\duckbill.mdw"))
using (var cmd = conn.CreateCommand())
{
    cmd.CommandText = "SELECT COUNT(*) FROM duckbilled_platypi";
    cmd.CommandType = CommandType.Text;
    conn.Open();
    var returnValue = cmd.ExecuteScalar();
    if (returnValue != null)
    {
        string s = returnValue.ToString();
        Add(new Platypus { Id = 77, DuckbillId = s, DuckbillName = s });
    }
}

但是 returnValue == 0,虽然我可以在 Access 中运行相同的查询并返回预期的(非 0)值。

更新 3

我不知道为什么它会有所作为,但我切换到数据库的不同“版本”(从 DB1 到 DB3),现在它可以工作了。它们都直接在 Access 中工作 - 我可以查看数据、查询数据等;所以为什么它对我的项目有影响,我不知道。但至少它现在正在工作。

更新 4

它今天再次停止工作,给了我同样的错误消息(“远程服务器返回错误:(500)内部服务器错误”),这次将“Persist Security Info=False”更改为“Persist Security Info=True”连接字符串解决了它。

4

0 回答 0