我已经在我的ASP.NET WebAPI项目的App_Data文件夹中添加了一个MDB表。
但是因为这看起来很奇怪(我猜这就是原因),我找不到任何关于如何进行编程连接的例子。有人有任何示例代码吗?
我试过了:
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."
}
...但是正如评论所示,我收到了错误。
现在运行,使用以下代码:
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)值。
我不知道为什么它会有所作为,但我切换到数据库的不同“版本”(从DB1到DB3),现在它可以工作。他们两个在Access中直接工作 - 我可以看到数据,查询数据等;所以为什么它对我的项目产生影响,我不知道。但至少它现在正在运作。
它今天再次停止工作,给我同样的错误消息(“远程服务器返回错误:(500)内部服务器错误”),这次将“持久安全信息=假”更改为“持久安全信息=真的“在连接字符串中解决了它。