.NET 像 Access (V1)






3.20/5 (10投票s)
2006年2月28日
7分钟阅读

58955

573
用于快速开发的数据库库。
(对于上一个 zip 文件中缺少的文件,我深表歉意。如果您在 2006 年 3 月 1 日之前下载了此应用程序,请重新下载,因为这是更新后的文件。下载文件后,请阅读 readme.txt 文件,如有任何疑问,请通过文章中的电子邮件与我联系。)
引言
每个程序员都有一个大梦想“无代码编程”。实际上,许多数据库工具都提供无代码编程,我尝试过的最好的两个工具是 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 有何期待?
正是您对涵盖所有这些领域的数据库工具所期望的。
- 为每个数据库表/视图构建一个表单。
- 在存在外键或任何其他关系的情况下,从其他表中查找字段。
- 使用漂亮的可自定义导航器控件导航所有记录。
- 为每个表单构建一个菜单,具有基本行为(第一个、上一个、下一个、最后一个、插入、更新、保存、撤消、锁定、查找、排序等)和特定行为。
- 将快捷方式绑定到用户菜单。
- 每个区域的上下文菜单(特别是主从表单)用于导航和基本操作。
- 筛选屏幕,包含所有可搜索字段,具有友好的名称(标题),并尽可能多地组合条件。
- 排序屏幕,具有拖放功能,可按所需顺序排列所有字段。
- 主从表单,具有自动检索详细记录的功能,并在每次添加或插入时将主键插入详细记录。
- 查找数据屏幕,带有滚动和数据高亮显示。
我保证,只要您自定义库,您无需编写任何代码即可完成所有这些操作。
DNetLibrary 中已经实现了哪些功能?
实际上,我完成了导航和数据检索,以及所有菜单和快捷功能的编程。
我知道您会有点沮丧,但我会尽力尽快完成其余的功能。
但好消息是,如果您了解库是如何创建的,您可以非常轻松地完成其余部分。如果您做到了,请给我发电子邮件以增强库。
让库工作的信息来源是什么?
简单地说,类型化数据集是数据库中所有表和视图的副本,带有一些元数据,如标题。
这是否意味着我们将使用一个伟大的 OOP 模型作为数据驱动编程?
绝对不是。
您仍然需要其他层:处理层、数据实体层、业务对象层、DALC 层、数据库层。
在许多简单的应用程序中,您只需要 UI 和 DALC,并使用类型化数据集来表示数据实体层。
在我们的案例中,我们将仅使用类型化数据集和数据绑定的强大功能开发 UI 层。
库的结构
库中的主要类是
DataHelper
类:这是唯一直接与 SQL 数据库通信的类。Utilities
类:用于格式化和其他实用程序,它们的大多数方法都是static
。UC_DataWindow
:是主类,它应用数据库工具的所有 UI 功能,包括导航、筛选、排序、上下文菜单、菜单等快捷功能。F_Single form
:是用于单个对象数据库表单的基本简单表单,例如员工信息、所有数据库查找表、如果主表已筛选为 1 条记录的详细表等。它也适用于使用 2 个表单的主从模型,第一个表单包含主记录,另一个表单包含详细记录。
使用代码
要使用代码,您只需执行两个单独的步骤
- 添加从
UC_DataWindow
继承的新用户控件,并在此示例中添加一个类型化数据集DS_Pubs
,然后根据需要添加数据网格或绑定文本框、组合框和列表,并配置用户对象的属性。 - 添加一个从
F_Single
继承的新窗体,然后将您创建的用户对象从工具箱拖到窗体上,并配置窗体的属性,然后从主 MDI 窗体调用此窗体,您将享受所有功能。
逐步创建 F_Job 窗体
- 添加一个从
UC_Datawindow
继承的新用户控件,并将其命名为UC_Job
- 从工具箱添加一个新数据集,选择类型化数据集并选择
DS_PUBS
并将其命名为ds_Pubs
。这样您就拥有了带有类型化数据集ds_Pubs
的空用户控件。 - 单击
UC_Job
的属性,然后将DS_Data
属性设置为ds_Pubs
,将Table
设置为ds_pubs.jobs
并将retrieveAtOpening = true
。 - 添加任何数据绑定控件。在此示例中,添加 4 个带有 4 个标题的文本控件,添加标签并设置标题
job_id
,然后添加文本框并设置名称editjob_id
,并在数据绑定中选择文本并设置ds_Pubs
-jobs.job_id
。实际上,如果您使用 DataForm 向导添加一个临时表单并选择数据集
DS_Pubs
,然后选择 Jobtable,然后选择单条记录/表单,则可以自动生成所有数据文本框控件。最后将生成的数据集名称更改为
ds_Pubs
,然后复制所有标签和控件并将其粘贴到UC_Jobs
中,这与您手动选择所有标签和文本框所达到的效果完全相同。 - 从
F_Single
创建新的继承窗体F_Job
,然后将UC_Job
从工具箱拖到窗体上,然后设置这些属性。显示窗体属性并将UC_DataWindowObject
设置为uC_job1
。显示uc_Nav
属性并将UC_DataWindowMain
设置为uC_job1
。 - 运行窗体在
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