覆盖访问数据库导致无法识别的格式



我已经可以将访问数据库覆盖到计算机中的另一个文件夹中。但是,当我打开已经成功覆盖的访问数据库时,我的数据库是 0 字节,它说它无法识别的格式。

我做了一个简单的应用程序和网站,但数据库在应用程序上,但是我也想从网站访问该数据库,所以我考虑复制数据库文件。但是,一旦数据库已经覆盖(没有发生错误),一旦我打开文件,就会说无法识别的格式。

我该如何解决这个问题?

这是我正在使用的代码:

private string dirA = @"D:Destination ADatabasedb1.accdb";
private string dirB = @"D:Destination BApp_Datadb1.accdb";
private void button1_Click(object sender, EventArgs e)
{
if (!File.Exists(dirB))
                {
                    File.Copy(dirA, dirB);
                }
                else
                {
                    File.WriteAllText(dirB, string.Empty);
                }
}

任何帮助将不胜感激!

谢谢。

如果要始终覆盖目标数据库,则需要检查它是否存在,并在执行复制之前将其删除

private string dirA = @"D:Destination ADatabasedb1.accdb";
private string dirB = @"D:Destination BApp_Datadb1.accdb";
private void button1_Click(object sender, EventArgs e)
{
    if (File.Exists(dirB))
    {
       File.Delete(dirB);
    }
    File.Copy(dirA, dirB);
}

如果目标文件存在,则实际代码将写入空字符串。File.WriteAllText 覆盖该文件,因此,它不再是有效的 Access 数据库

最新更新