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