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

Overwrite Access Database resulting Unrecognized Format

我已经可以将访问数据库覆盖到我计算机中的另一个文件夹中。但是,当我打开已经成功覆盖的访问数据库时,我的数据库是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);
                }
}

如有任何帮助,我们将不胜感激!

谢谢。

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

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 数据库