本教程介绍如何使用 Microsoft Visual Studio 从实体数据模型中的实体创建 Windows 窗体数据源。步骤如下:
要执行本教程中的步骤,请先安装 world
数据库示例,您可以从 MySQL 文档页面 下载该示例。您还可以在同一页面上找到有关如何安装数据库的详细信息。
第一步是创建一个新的 Windows 窗体应用程序。
在 Visual Studio 中,从主菜单中选择
、 ,然后选择 。选择已安装的模板 Windows 窗体应用程序。单击 。解决方案已创建。
要获取最新的 MySQL 实体框架程序集,请下载 NuGet 包。
要将实体数据模型添加到您的解决方案,请执行以下操作:
在解决方案资源管理器中,右键单击您的应用程序,然后选择 Visual Studio 已安装的模板 中,选择 ADO.NET 实体数据模型(请参见下图)。单击 。
,然后选择 。从现在,您将看到实体数据模型向导。您将使用该向导从
world
数据库示例生成实体数据模型。选择图标 从数据库生成 EF 设计器(或在旧版本的 Visual Studio 中选择 从数据库生成)。单击 。现在,您可以选择之前建立的与数据库的
localhost(world)
连接。选择以下项目:是,在连接字符串中包含敏感数据。
将实体连接设置保存在
App.config
中,名称为:worldEntities
如果您尚未创建新连接,则可以通过单击
来创建新连接(请参见下图)。记下要在
App.Config
中使用的实体连接设置,因为这些设置稍后将用于编写必要的控件代码。单击 。实体数据模型向导连接到数据库。
如下图所示,然后会显示数据库的树形结构。您可以从此处选择要包含在模型中的对象。如果您还创建了视图和存储例程,则这些项目将与任何表一起显示。在本例中,您只需要选择表。单击
以创建模型并退出向导。Visual Studio 生成一个包含三个表(city、country 和 countrylanguage)的模型,然后显示该模型,如下图所示。
从 Visual Studio 主菜单中,选择
,然后选择 ,以确保到目前为止所有内容都能正确编译。
现在,您将向项目中添加一个新的数据源,并了解如何使用它来读取和写入数据库。
此步骤介绍如何在 Windows 窗体中使用数据源。
现在,您可以添加代码,以确保使用 city 数据库表中的数据填充数据网格视图控件。
双击窗体以访问其代码。
添加以下代码以实例化实体数据模型
EntityContainer
对象并从数据库检索数据以填充控件。using System.Windows.Forms; namespace WindowsFormsApplication4 { public partial class Form1 : Form { worldEntities we; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { we = new worldEntities(); cityBindingSource.DataSource = we.city.ToList(); } } }
保存并重新生成解决方案。
运行解决方案。确认网格已填充(有关示例,请参见下图),并且您可以导航数据库。
此步骤介绍如何添加代码,使您能够将更改保存到数据库。
绑定源组件可确保对数据网格视图控件所做的更改也对绑定到该控件的实体类进行。但是,需要将这些数据从实体保存回数据库本身。这可以通过启用导航器控件中的“保存”按钮和添加一些代码来实现。
在窗体设计器中,单击窗体工具栏中的保存图标,并确认其 启用 属性设置为
True
。双击窗体工具栏中的保存图标以显示其代码。
添加以下(或类似)代码,以确保当用户单击应用程序中的“保存”按钮时,数据将保存到数据库中。
public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { we = new worldEntities(); cityBindingSource.DataSource = we.city.ToList(); } private void cityBindingNavigatorSaveItem_Click(object sender, EventArgs e) { we.SaveChanges(); } } }
添加代码后,保存解决方案,然后重新生成解决方案。运行应用程序,并验证在网格中所做的更改是否已保存。