之前的一篇写了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数据库的增删查改基本操作了,不过根据代码逻辑不同,实现效果也会不同。
演示只是采取了一种方式。
刚开始也许会遇到各种各样的问题,欢迎讨论!