在Winform中更新Access数据库时出现错误“操作必须使用一个可更新的查询。”,发现数据库文件具有只读属性,于是移除文件只读属性,更新数据库成功。
以下为操作所用代码:
// 将 test.txt 设置成正常文件(移除只读、隐藏等属性)
System.IO.File.SetAttributes( " test.txt " , System.IO.FileAttributes.Normal);
顺便附上文件的权限设置方法(需添加引用System.IO;System.Security.AccessControl;)。
// 添加对文件的访问控制(ACL)权限
public static void AddFileSecurity( string fileName, string account,
FileSystemRights rights, AccessControlType controlType)
{
FileSecurity fSecurity = File.GetAccessControl(fileName);
fSecurity.AddAccessRule( new FileSystemAccessRule(account,rights, controlType));
File.SetAccessControl(fileName, fSecurity);
}
// 移除对文件的访问控制(ACL)权限
public static void RemoveFileSecurity( string fileName, string account,
FileSystemRights rights, AccessControlType controlType)
{
FileSecurity fSecurity = File.GetAccessControl(fileName);
fSecurity.RemoveAccessRule( new FileSystemAccessRule(account,rights, controlType));
File.SetAccessControl(fileName, fSecurity);
}
调用:
// 给everyone添加读取权限
AddFileSecurity( " test.txt " , " everyone " , FileSystemRights.Read, AccessControlType.Allow);
// 移除everyone的读取权限
RemoveFileSecurity( " test.txt " , " everyone " , FileSystemRights.ReadData, AccessControlType.Allow);