本周 Chunk 回答一位 Builder 澳大利亚读者的问题,问题是关于如何创建用户能够在不连接远程数据库的情况下编辑数据的 Windows 应用程序。
您好,Chuck:
我想创建一个允许用户在没有连接远程数据库的情况下能够输入/编辑/访问数据的 Windows 应用程序。我想要所有的数据访问都是本地的。这有办法实现吗?我在考虑也许可以使用 XML 文件存储和读取数据。
Chuck:
我经常听到这个问题,而且在三月份已经回答过一个相关的问题。在那篇文章中,我向一位 Builder 读者展示了如何从一个远程 RDBMS 取数据保持在本地硬盘,然后再把数据从本地存回到应用程序。你的问题与那个问题有两个不同的地方,这两个地方在上次的答案中没有提到:
首先我们从你的问题中最简单的部分开始,使用什么格式存储数据?你提到 XML 文件——我双手表示赞同。Visual Studio .NET(或者大多数任何 XML 编辑器)使得为 XML 文件创建“表”(XML 术语中叫做 XML schema)非常容易。
在 Visual Studio .NET 中的做法是在一个现有项目中添加一个类型为“DataSet”的新项(图A)。这样会生成一个数据集 schema 并打开数据集设计器,在设计器中可以通过点击右键添加“列”(元素)。在图B中,我已经向数据集中添加了4个元素,该数据集将模拟我的客户表。
这个时候我们已经有了足够的内容来创建一个绑定到我们的 XML“表”(即 XML schema)的简单应用程序,目前该表带为空。将下面的代码放置到 Windows 应用程序的 form_load 事件中,我们的客户“列”(XML 元素)就会显示在一个使用 ADO.NET 的数据表格(DataGrid)中。
Dim ds As New System.Data.DataSet
ds.ReadXml("..dataset1.xsd")
DataGrid1.DataSource = ds.Tables(0)