65.9K
CodeProject 正在变化。 阅读更多。
Home

.NET 像 Access (V1)

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.20/5 (10投票s)

2006年2月28日

7分钟阅读

viewsIcon

58955

downloadIcon

573

用于快速开发的数据库库。

(对于上一个 zip 文件中缺少的文件,我深表歉意。如果您在 2006 年 3 月 1 日之前下载了此应用程序,请重新下载,因为这是更新后的文件。下载文件后,请阅读 readme.txt 文件,如有任何疑问,请通过文章中的电子邮件与我联系。)

Snapshot

引言

每个程序员都有一个大梦想“无代码编程”。实际上,许多数据库工具都提供无代码编程,我尝试过的最好的两个工具是 Microsoft Access 和 PowerBuilder。

如果您使用 Microsoft Access 开发过应用程序,您会发现使用 Access 开发并不像您最初想象的那么容易。在使用向导并对生成的应用程序感到满意之后,您会发现您没有菜单或 MDI 表单。此外,除非您改变 Access 的正常流程,否则您无法完成许多琐碎的事情,例如,如果您想创建一个下拉组合框并在筛选表单中用某个值填充它,您无法做到,并且很明显您无法制作一个真正的 .exe 应用程序。

快速应用程序在以正常方式运行时似乎非常强大,但难以自定义。

PowerBuilder 是另一个工具。在我看来,它比 Microsoft Access 强大得多,但是,如果您使用现成的库,您必须完全理解它,因为任何自定义都意味着您需要用新函数覆盖一个函数。

所以结论是,如果您使用强大的编程工具(如 ASP.NET、.NET Windows Forms、Delphi、C++ Builder(我使用的就是这个))并结合强大的编程库进行继承和使用,并且您知道如何增强和覆盖函数,那么这就是最佳解决方案。

现在,这就是 .NET 作为快速数据库工具。

我之前在 PowerBuilder 中使用三级继承实现了这个想法。它花了三个月的时间开发,一旦我完成它,它就迅速传播开来,许多公司都使用了它。

因此,我可以在 .NET 应用程序中轻松应用相同的概念。

只需创建库,您就可以继承和使用它,它会自动运行良好,并且比 Microsoft Access 更强大、更简单。

我们对 DNetlibrary 有何期待?

正是您对涵盖所有这些领域的数据库工具所期望的。

  1. 为每个数据库表/视图构建一个表单。
  2. 在存在外键或任何其他关系的情况下,从其他表中查找字段。
  3. 使用漂亮的可自定义导航器控件导航所有记录。
  4. 为每个表单构建一个菜单,具有基本行为(第一个、上一个、下一个、最后一个、插入、更新、保存、撤消、锁定、查找、排序等)和特定行为。
  5. 将快捷方式绑定到用户菜单。
  6. 每个区域的上下文菜单(特别是主从表单)用于导航和基本操作。
  7. 筛选屏幕,包含所有可搜索字段,具有友好的名称(标题),并尽可能多地组合条件。
  8. 排序屏幕,具有拖放功能,可按所需顺序排列所有字段。
  9. 主从表单,具有自动检索详细记录的功能,并在每次添加或插入时将主键插入详细记录。
  10. 查找数据屏幕,带有滚动和数据高亮显示。

我保证,只要您自定义库,您无需编写任何代码即可完成所有这些操作。

DNetLibrary 中已经实现了哪些功能?

实际上,我完成了导航和数据检索,以及所有菜单和快捷功能的编程。

我知道您会有点沮丧,但我会尽力尽快完成其余的功能。

但好消息是,如果您了解库是如何创建的,您可以非常轻松地完成其余部分。如果您做到了,请给我发电子邮件以增强库。

让库工作的信息来源是什么?

简单地说,类型化数据集是数据库中所有表和视图的副本,带有一些元数据,如标题。

这是否意味着我们将使用一个伟大的 OOP 模型作为数据驱动编程?

绝对不是。

您仍然需要其他层:处理层、数据实体层、业务对象层、DALC 层、数据库层。

在许多简单的应用程序中,您只需要 UI 和 DALC,并使用类型化数据集来表示数据实体层。

在我们的案例中,我们将仅使用类型化数据集和数据绑定的强大功能开发 UI 层。

库的结构

库中的主要类是

  1. DataHelper 类:这是唯一直接与 SQL 数据库通信的类。
  2. Utilities 类:用于格式化和其他实用程序,它们的大多数方法都是 static
  3. UC_DataWindow:是主类,它应用数据库工具的所有 UI 功能,包括导航、筛选、排序、上下文菜单、菜单等快捷功能。
  4. F_Single form:是用于单个对象数据库表单的基本简单表单,例如员工信息、所有数据库查找表、如果主表已筛选为 1 条记录的详细表等。它也适用于使用 2 个表单的主从模型,第一个表单包含主记录,另一个表单包含详细记录。

使用代码

要使用代码,您只需执行两个单独的步骤

  1. 添加从 UC_DataWindow 继承的新用户控件,并在此示例中添加一个类型化数据集 DS_Pubs,然后根据需要添加数据网格或绑定文本框、组合框和列表,并配置用户对象的属性。
  2. 添加一个从 F_Single 继承的新窗体,然后将您创建的用户对象从工具箱拖到窗体上,并配置窗体的属性,然后从主 MDI 窗体调用此窗体,您将享受所有功能。

逐步创建 F_Job 窗体

  1. 添加一个从 UC_Datawindow 继承的新用户控件,并将其命名为 UC_Job
  2. 从工具箱添加一个新数据集,选择类型化数据集并选择 DS_PUBS 并将其命名为 ds_Pubs。这样您就拥有了带有类型化数据集 ds_Pubs 的空用户控件。
  3. 单击 UC_Job 的属性,然后将 DS_Data 属性设置为 ds_Pubs,将 Table 设置为 ds_pubs.jobs 并将 retrieveAtOpening = true
  4. 添加任何数据绑定控件。在此示例中,添加 4 个带有 4 个标题的文本控件,添加标签并设置标题 job_id,然后添加文本框并设置名称 editjob_id,并在数据绑定中选择文本并设置 ds_Pubs - jobs.job_id

    实际上,如果您使用 DataForm 向导添加一个临时表单并选择数据集 DS_Pubs,然后选择 Jobtable,然后选择单条记录/表单,则可以自动生成所有数据文本框控件。

    最后将生成的数据集名称更改为 ds_Pubs,然后复制所有标签和控件并将其粘贴到 UC_Jobs 中,这与您手动选择所有标签和文本框所达到的效果完全相同。

  5. F_Single 创建新的继承窗体 F_Job,然后将 UC_Job 从工具箱拖到窗体上,然后设置这些属性。显示窗体属性并将 UC_DataWindowObject 设置为 uC_job1。显示 uc_Nav 属性并将 UC_DataWindowMain 设置为 uC_job1
  6. 运行窗体在 F_Main 中添加新的菜单项。窗体菜单调用 Jobs 并在单击时添加此代码

    private void m_Jobs_Click(object sender, System.EventArgs e)
    { 
    F_Job form=new F_Job(); form.MdiParent=this; form.Show(); 
    }

现在享受 F_Job 窗体并尝试测试所有这些选项。

从导航器导航,直到到达最后一条记录,然后单击“下一个”。它将滚动并从头开始再次,文本框指示器将显示当前记录数/总记录数。

关注点

F_job 主菜单将嵌入到主菜单中,并且仍然有其自己的上下文(弹出)菜单。

如果您尝试使用 F9(第一个)、F10(下一个)、F11(上一个)或 F12(最后一个),您将意识到将所有繁重的代码插入基类并继承所有功能的重要性。

历史

  • V2 将包含(蒙上帝保佑)自动插入、更新、保存、排序、筛选
  • V3 将包含主从表单
  • V4 主记录、详细信息……和树支持

希望您喜欢这个应用程序。如果您有任何意见和问题,请发送电子邮件至 wahib@iws-australasia.com

© . All rights reserved.