Ms Access:无法读取记录; [table]
问题描述:
没有读取权限我写了下载mdb文件并读取它们到OLEDB提供程序的脚本。所有工作正常,但如果我尝试从表中读取,它会引发异常:Ms Access:无法读取记录; [table]
Ms Access:无法读取记录;没有读取权限tblMytable
var cmd = new OleDbCommand("SELECT * FROM tblMytable", conn);
var reader = cmd.ExecuteReader();
我改变权限直接在MS Access为用户“administrator”和它的作品。但问题是,这个脚本每天运行两次,下载大约20个文件。所以它不可能手动更改权限。
是否有可能以编程方式更改表的读权限?
非常感谢您的任何想法!
答
我使用system.mdw文件解决了这个问题。我将该文件从“c:\ Users \ Administrator \ AppData \ Roaming \ Microsoft \ Access \”(在Win7中)复制到应用程序目录(App_Data)并修改了连接字符串。
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database.MDB;Persist Security Info=True;Jet OLEDB:System Database=|DataDirectory|\System.MDW;
var conn = new OleDbConnection(connectionString);
如果它仍然是无法读取数据,我执行许可命令:
"GRANT SELECT ON TABLE tblTable TO PUBLIC"
而且它的工作原理:)
不知道,如果你可以改变的权利,但如果可能的话,它将要求您以具有管理员或所有者权限的用户身份登录到数据库。所以我建议你改为直接以这样的用户身份登录,或许通过改变你的连接字符串。我怀疑你会需要.MDW文件。 – 2012-02-20 14:24:59