我有一个使用Access文件的Cassini应用程序。更新的安装程序会覆盖应用程序和数据库。但是,即使在系统重启后,应用程序仍会看到旧数据。 (还手动复制MDB文件以确保它已被替换,但它没有帮助。)
应用程序查看新MDB数据的唯一方法是将其安装到新文件夹中。
连接字符串是标准的(我认为):
Connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
HttpContext.Current.Server.MapPath("App_Data\\" +
ConfigurationManager.AppSettings.Get("dbfile")) + ";Jet OLEDB:Database Password=xxxx";
知道发生了什么以及如何避免缓存问题?
更新(回答评论中的一些问题):
答案 0 :(得分:1)
答案 1 :(得分:0)
设置 连接对象的缓存授权属性为false,默认情况下为true。
http://msdn.microsoft.com/en-us/library/aa140022(v=office.10).aspx
答案 2 :(得分:0)
您是否尝试过使用“Microsoft.ACE.OLEDB.12.0”提供程序?我相信它预装了Windows 7。
答案 3 :(得分:0)
新的Windows 7 / Server 2008安全模型在某些条件下为每个用户提供文件的虚拟副本。
您是否可能会在安装完成后点击向用户展示过时快照的设计功能?应用程序是否可能对安装数据库的用户使用不同的凭据?
User Account Control Data Redirection处有功能说明。建议的解决方案是为数据使用更合适的文件夹