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

Posted

技术标签:

【中文标题】如何在第一次启动我的 .NET Windows 应用程序时创建 Access 数据库?【英文标题】:How to create an Access database on first launch of my .NET Windows application? 【发布时间】:2014-09-05 05:06:33 【问题描述】:

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

【问题讨论】:

什么 .NET 语言?如果您使用 C#,这可能会有所帮助:***.com/questions/4778548/… 谢谢你先生这是创建我的数据库。但是有什么建议可以在我的应用程序中自动使用 db 创建所有表,或者我必须使用 c# 代码以编程方式创建表 【参考方案1】:

从提问者的评论到问题

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

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

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

例如,如果我创建一个名为“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);

【讨论】:

以上是关于如何在第一次启动我的 .NET Windows 应用程序时创建 Access 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 asp.net 应用程序中注销按钮 Windows 身份验证

如何在Windows上使用Python for .NET进行多处理?

在我告诉他启动之前,不应启动 UINib 文件

ensp中的AR路由器为啥一直在启动当中,无法进入配置界面

如何从Windows服务启动进程到当前登录的用户会话

如何从 Windows 服务启动进程到当前登录的用户会话