【问题标题】:Auto-generate VB.NET forms using SQL Server 2008使用 SQL Server 2008 自动生成 VB.NET 表单
【发布时间】:2011-10-26 21:32:32
【问题描述】:

我想使用 SQL Server 数据库中的表(一个表单/数据库表)自动生成 VB.NET 表单。为它编写自定义代码也许是可能的,但如果已经有一些功能可以完成这项工作,那就太好了(数据库有 40 多个表,手动执行这是一项乏味的任务)。

非常感谢任何答案、帮助、链接、提示。

问候, 阿尤布

【问题讨论】:

  • 表格需要做什么?
  • 如果 VB.NET 不是严格要求,您可以使用在 SilverLight 中生成前端的LightSwitch。如果愿意,您可以在 WebBrowser 控件中的 VB.NET 表单上托管 SilverLight 应用程序。
  • 表格主要用于数据输入人员/数据验证,使用这些表格输入的调查数量很大

标签: sql-server vb.net winforms


【解决方案1】:

只需一分钟即可修复,所有功能都已存在于 Visual Studio 中。

启动 Visual Studio,点击 Add new datasource... 启动数据源配置向导:

选择数据库并按照向导操作:

连接到数据库后,选择您感兴趣的表,然后按芬兰语按钮:

现在,这将在您的解决方案中创建一个强命名的数据集,如果您双击 xsd 文件,您将看到您在架构编辑器中选择的表,但暂时不要这样做:

现在,从数据菜单中选择“显示数据源”,您将看到您在向导中选择的所有表。每个字段的左侧都有一个图标,说明该字段将在结果表单上表示的控件类型:

现在您可以决定数据在表单上的显示方式,作为 datagridview 或在详细模式下,只需使用表名上的下拉菜单(仅在表单设计模式下)。

如果您在表格上选择了 details-mode,那么您可以更改该字段将由什么控件表示(必须是 form-design-mode,而不是 code-mode):

然后只需将表格从数据源视图拖到一个空表单中,它就会神奇地创建控件来编辑/添加/删除和移动数据。

如果选择了 DataGridView 模式,这是结果:

如果在桌子上选择了详细信息:

在它后面的代码中还神奇地添加了一些代码以在表单加载时将数据加载到适配器和一些保存/验证代码:

Private Sub AccountBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AccountBindingNavigatorSaveItem.Click
    Me.Validate()
    Me.AccountBindingSource.EndEdit()
    Me.AccountTableAdapter.Update(Me.MyDBDataSet.Account)

End Sub

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'TODO: This line of code loads data into the 'MyDBDataSet.Account' table. You can move, or remove it, as needed.
    Me.AccountTableAdapter.Fill(Me.MyDBDataSet.Account)

End Sub

【讨论】:

  • 现在,当您拥有一个强命名的数据集时,您就进入了一个充满可能性的新世界。打开数据集并将查询添加到 tableadapter。在数据集数据上使用 LINQ。将关系添加到表中(如果关系已经在数据库中,则自动创建),然后能够使用点符号来访问/更改/保存这样的相关数据,而无需关心连接以及如何保存相关数据: MydataSet.Customer.Adress.Street="" 等等。
  • 感谢您的详细回答,看起来很有希望,我会尝试并告诉您..
  • 亲爱的@Stefan,这可以使用代码完成吗?即我想自动从数据库表创建表单,我不想对表单使用绑定模式。我想从我自己的方法中插入所有操作。
  • 它工作 Stefan,谢谢!,很抱歉回复太晚了:(我的帐户密码丢失了:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多