我正在尝试通过以下方式连接到 MS Access 数据库 (.mdb)OleDb
。我的查询是
SELECT * FROM ListQueries
这让我犯了错误
SQL 执行错误。
执行的 SQL 语句:SELECT * FROM ListQueries
错误来源:Microsoft JET 数据库引擎
错误信息:无法读取记录;对“MSysObjects”没有读取权限。
然后我尝试了这个答案 https://stackoverflow.com/a/15209744/17447,但这并没有帮助。然后我看到另一个答案说要这样做。
strDdl = "GRANT SELECT ON MSysObjects TO Admin;"
CurrentProject.Connection.Execute strDdl
我不知道如何在我的web project
。正在根据这个建议写这样的东西@HansUp https://stackoverflow.com/users/77335/hansup
或者,如果您从 OleDb 连接到 Access db 运行它,它应该可以在 C# 中工作
代码是,
OleDbConnection con;
using (con = new OleDbConnection(Connection.connectionString()))
{
con.Open();
using (var com = new OleDbCommand("GRANT SELECT ON MSysObjects TO Admin", con))
{
com.ExecuteNonQuery();
}
using (var com = new OleDbCommand("Select * from ListQueries", con))
{
using (var dr = com.ExecuteReader())
{
while (dr.Read())
{
qryList.Add(SQLReaderExtensions.SafeGetString(dr, "Name"));
}
dr.Close();
}
}
con.Close();
}
首先com.ExecuteNonQuery()
给了我这个错误。
无法打开 Microsoft Jet 引擎工作组信息文件。
我真的很想知道如何授予 OleDb 调用工作的权限。任何建议都会很棒
P.S:顺便说一句,我正在使用 MS Access 2010。