之前的一篇写了WPF数据库的建立和使用

有的朋友们问到如何进行增删查改操作。
这篇文章就来详细的讲述一下。
因为非常详细,所以可以根据自己的需要查看自己需要的部分。

上篇文章效果

之前做到了WPF数据库内容的显示。
在这里插入图片描述

增加数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码部分
在这里插入图片描述
代码块

private void Button_Click(object sender, RoutedEventArgs e)
        {
            user one = new user();      // 新建实体
            one.Name = Add.Text;        // 获取用户填入的数据
            using (Database1Entities context = new Database1Entities())
            {
                context.user.Add(one);              // 将新建的数据加入到数据库
                try
                {
                    context.SaveChanges();          // 保存,成功提示,失败提示错误信息
                    MessageBox.Show("添加成功!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("添加失败" + ex.Message);

                }
                var q = from t in context.user      // 重载数据显示在列表中
                        select t;
                info.ItemsSource = q.ToList();
            }
        }

这时候发现添加成功但是数据库的数据没有变化,那是因为数据存储到默认路径下的数据库中了,就是添加到的数据库和显示的数据库不是一个路径。为了方便,修改路径。
在这里插入图片描述
代码块

		string dataDir = AppDomain.CurrentDomain.BaseDirectory;
        public MainWindow()
        {
            InitializeComponent();
            if (dataDir.EndsWith(@"\bin\Release\") || dataDir.EndsWith(@"\bin\Debug\"))
            {
                dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
                AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
            }
            using (Database1Entities context = new Database1Entities())
            {
                var q = from t in context.user
                        select t;
                info.ItemsSource = q.ToList();
            }
        }

运行效果:
初始
在这里插入图片描述
点击添加按钮!
在这里插入图片描述
添加成功!
在这里插入图片描述
数据库中也有对应数据!
在这里插入图片描述

删除数据

在这里插入图片描述
在这里插入图片描述
修改后台代码

private void BtnDelete_Click(object sender, RoutedEventArgs e)
        {
            var item = info.SelectedItem as user;           // 获取选择的用户
            if (item == null)
            {
                MessageBox.Show("请选择要删除的用户信息!");
                return;
            }
            MessageBoxResult result = MessageBox.Show("您确定要删除该用户的信息吗?", "删除确认", MessageBoxButton.YesNo, MessageBoxImage.Question);
            if (result == MessageBoxResult.Yes)
            {
                using (Database1Entities context = new Database1Entities())
                {
                    var q = from t in context.user              // 查找用户
                            where t.Id == item.Id
                            select t;
                    if (q != null)
                    {
                        try
                        {
                            context.user.Remove(q.First());     // 删除用户
                            context.SaveChanges();
                            MessageBox.Show("删除成功!");
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("删除失败!" + ex.Message);
                        }
                    }
                    var list = from t in context.user      // 重载数据显示在列表中
                            select t;
                    info.ItemsSource = list.ToList();
                    context.Dispose();
                }
            }
        }

运行效果
在这里插入图片描述
在这里插入图片描述
数据库中的数据也被删除了!
在这里插入图片描述

查询数据

初始化的时候就是查询的方法

修改数据

在这里插入图片描述
修改代码

private void BtnUpdata_Click(object sender, RoutedEventArgs e)
        {
            var item = info.SelectedItem as user;           // 获取选择的用户
            if (item == null)
            {
                MessageBox.Show("请选择要修改的用户信息!");
                return;
            }
            string newName = Add.Text;
            if (newName == "")
            {
                MessageBox.Show("输入不能为空!");
                return;
            }
            using (Database1Entities context = new Database1Entities())
            {
                var q = from t in context.user              // 查找用户
                        where t.Id == item.Id
                        select t;
                if (q != null)
                {
                    q.FirstOrDefault().Name = newName;
                    try
                    {
                        context.SaveChanges();
                        MessageBox.Show("修改成功!");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("修改失败!" + ex.Message);
                    }
                }
                var list = from t in context.user      // 重载数据显示在列表中
                           select t;
                info.ItemsSource = list.ToList();
                context.Dispose();
            }
        }

运行效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
数据库的数据也被修改
在这里插入图片描述
综上,就是WPF数据库的增删查改基本操作了,不过根据代码逻辑不同,实现效果也会不同。

演示只是采取了一种方式。

刚开始也许会遇到各种各样的问题,欢迎讨论!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐