共 1 篇文章

标签:【WPF开发】子窗口传递数据库给父窗口 (wpf 子窗口向父窗口传数据库)

【WPF开发】子窗口传递数据库给父窗口 (wpf 子窗口向父窗口传数据库)

WPF开发是近年来非常流行的一种桌面应用程序开发技术,它可以帮助开发人员快速、高效地创建充满交互性和美观的应用程序。在WPF开发中,窗口的嵌套是非常常见的操作,而子窗口与父窗口之间的信息传递则更是必不可少的。本文将介绍一个常见的WPF开发场景——如何在子窗口中操作数据库,然后将数据传递给父窗口。 一、创建子窗体和父窗体 在WPF开发中,我们首先需要进行的操作就是创建一对子窗体和父窗体。首先创建一个子窗体,例如我们创建一个名为ChildWindow的子窗体。在Visual Studio中新建一个WPF Application项目,在项目中创建一个名为ChildWindow.xaml的文件,然后在文件中添加如下样式: “` xmlns=”http://schemas.microsoft.com/winfx/2023/xaml/presentation” xmlns:x=”http://schemas.microsoft.com/winfx/2023/xaml” Title=”ChildWindow” Height=”300″ Width=”300″> “` 在这里,我们创建了一个TextBox和一个Button,用户可以在TextBox中输入数据,然后通过单击Button将数据保存到数据库中。 接下来,我们再创建一个父窗体,例如我们创建一个名为ParentWindow的父窗体。在Visual Studio中新建一个WPF Application项目,在项目中创建一个名为ParentWindow.xaml的文件,然后在文件中添加如下样式: “` xmlns=”http://schemas.microsoft.com/winfx/2023/xaml/presentation” xmlns:x=”http://schemas.microsoft.com/winfx/2023/xaml” Title=”ParentWindow” Height=”300″ Width=”300″> “` 在这里,我们创建了一个Button和一个ListView,用户可以通过单击Button打开一个ChildWindow子窗体,在ListView中显示保存到数据库中的数据。 二、创建数据库 接下来,我们需要创建一个数据库并将其与我们的项目关联起来。在Visual Studio中右键单击项目名称,选择“添加”->“新建项”,然后选择“数据库”并添加一个名为TestDB.mdf的数据库。 三、将数据保存到数据库中 在这个场景中,我们需要将用户输入的数据保存到TestDB数据库中。我们需要在ChildWindow.xaml.cs文件中添加以下代码: “` private void Button_Click(object sender, RoutedEventArgs e) { using (var conn = new SqlConnection(“Data Source=(LocalDb)\\v11.0;Initial Catalog=TestDB;Integrated Security=True”)) { conn.Open(); using (var cmd = conn.CreateCommand()) { cmd.CommandText = “insert into TestTable values(@name)”; cmd.Parameters.AddWithValue(“@name”, txtName.Text); cmd.ExecuteNonQuery(); } } } “` 在这里,我们使用SqlConnection连接字符串与TestDB数据库建立连接,并使用SqlCommand对象将输入的数据存储到TestTable表中。 四、将数据传递给父窗口 接下来,我们需要将刚刚保存到数据库中的数据传递给父窗口。我们需要在ParentWindow.xaml.cs文件中添加以下代码: “` private void Button_Click(object sender, RoutedEventArgs e) { var childWindow = new ChildWindow(); childWindow.ShowDialog(); using (var conn = new SqlConnection(“Data Source=(LocalDb)\\v11.0;Initial Catalog=TestDB;Integrated Security=True”)) { conn.Open(); using (var cmd = conn.CreateCommand()) { cmd.CommandText = “select * from TestTable”; using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { lvData.Items.Add(new { Name =...

技术分享