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

时间:2015-01-22 23:18:50

标签: c# winforms web

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

非常感谢任何帮助!

谢谢。

1 个答案:

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