我已经可以将访问数据库覆盖到我计算机的另一个文件夹中。但是,当我打开已经成功覆盖的访问数据库时,我的数据库是0字节,并且它说它是无法识别的格式。
我制作了一个简单的应用程序和网站,但数据库在应用程序上,但是我想从网站上访问该数据库,所以我想复制数据库文件。但是,一旦数据库已经覆盖(没有发生错误),一旦打开文件就会显示无法识别的格式。
我该如何解决这个问题?
以下是我正在使用的代码:
private string dirA = @"D:\Destination A\Database\db1.accdb";
private string dirB = @"D:\Destination B\App_Data\db1.accdb";
private void button1_Click(object sender, EventArgs e)
{
if (!File.Exists(dirB))
{
File.Copy(dirA, dirB);
}
else
{
File.WriteAllText(dirB, string.Empty);
}
}
非常感谢任何帮助!
谢谢。
答案 0 :(得分:2)
如果要始终覆盖目标数据库,则需要检查它是否存在,并且在执行副本之前将其删除
private string dirA = @"D:\Destination A\Database\db1.accdb";
private string dirB = @"D:\Destination B\App_Data\db1.accdb";
private void button1_Click(object sender, EventArgs e)
{
if (File.Exists(dirB))
{
File.Delete(dirB);
}
File.Copy(dirA, dirB);
}
如果目标文件存在,您的实际代码将写入空字符串。 File.WriteAllText会覆盖该文件,因此它不再是有效的Access数据库