如何在首次启动.NET Windows应用程序时创建Access数据库?

时间:2014-09-05 05:06:33

标签: c# .net ms-access ms-access-2007

首次运行.NET Windows应用程序时,如何创建Access数据库? 我想在客户端计算机上安装.exe时创建一个包含项目中使用的表的数据库,询问db的路径并创建在我的应用程序中使用的db。

1 个答案:

答案 0 :(得分:2)

从提问者的评论到问题

  

是否有任何建议用我的应用程序中自动使用的db创建所有表,或者我必须使用c#代码以编程方式创建表

如果你想避免编写所有的DDL代码(CREATE TABLE,CREATE INDEX,...)来“从头开始”创建表结构,你可以在Access中创建数据库和所有表等。 。然后,您可以在.NET项目中将“空白”数据库文件(表结构但没有数据)添加为Resource

当您的应用程序启动时,它可以检查是否存在数据库的本地(非“空白”)副本。如果不存在,那么它可以将“空白”数据库从应用程序的资源复制到硬盘驱动器上的所需位置。

例如,如果我创建一个名为“resTestData.accdb”的“空白”数据库并将其保存为项目中的File资源,我可以将其复制到本地硬盘驱动器中,如下所示:

string persistentDbLocation = @"C:\Users\Gord\Desktop\resTestUserData.accdb";
if (File.Exists(persistentDbLocation))
{
    Console.WriteLine("Local persistent copy of database already exists.");
}
else
{
    // "resTest" is the name I gave to my C# Project, hence resTest.Properties
    byte[] dbResource = resTest.Properties.Resources.resTestData;  // .accdb File Resource
    using (FileStream output = new FileStream(persistentDbLocation, FileMode.Create, FileAccess.Write))
    {
        output.Write(dbResource, 0, dbResource.Length);
    }
    Console.WriteLine("Local persistent copy of database saved to \"{0}\".", persistentDbLocation);
}