首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用Wpf EF框架分别是mysql和sqlite数据库表界面显示及CRUD功能

如何在WPF应用中使用Entity Framework(EF)框架,针对MySQL和SQLite数据库实现表界面显示及CRUD功能。假设你已安装好相关依赖包,如针对MySQL的 MySql.Data.EntityFrameworkCore ,针对SQLite的 Microsoft.EntityFrameworkCore.Sqlite 。

针对MySQL数据库

创建WPF项目:在Visual Studio中创建新的WPF应用程序项目。

定义数据模型:假设存在一个 User 类,代表数据库中的用户表。

csharp

using System;

using System.ComponentModel.DataAnnotations;

public class User

{

[Key]

public int Id { get; set; }

public string Name { get; set; }

public int Age { get; set; }

}

配置DbContext:创建一个继承自 DbContext 的类,用于与数据库交互。

csharp

using Microsoft.EntityFrameworkCore;

public class MyDbContext : DbContext

{

public DbSet<User> Users { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

{

optionsBuilder.UseMySQL("server=localhost;database=your_database;user=your_user;password=your_password;");

}

}

界面设计:在 MainWindow.xaml 中设计界面,包含数据显示的 DataGrid 以及CRUD操作的按钮。

xml

<Window x:Class="MyWpfApp.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="MySQL EF CRUD" Height="350" Width="525">

<Grid>

<DataGrid x:Name="UserDataGrid" Margin="10" AutoGenerateColumns="True"/>

<Button Content="添加" Margin="10,250,100,10" Click="AddUser_Click"/>

<Button Content="修改" Margin="120,250,100,10" Click="UpdateUser_Click"/>

<Button Content="删除" Margin="230,250,100,10" Click="DeleteUser_Click"/>

<Button Content="查询" Margin="340,250,100,10" Click="QueryUser_Click"/>

</Grid>

实现CRUD操作:在 MainWindow.xaml.cs 中编写代码实现CRUD功能。

csharp

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows;

namespace MyWpfApp

{

public partial class MainWindow : Window

{

private MyDbContext _dbContext;

public MainWindow()

{

InitializeComponent();

_dbContext = new MyDbContext();

LoadUsers();

}

private void LoadUsers()

{

List<User> users = _dbContext.Users.ToList();

UserDataGrid.ItemsSource = users;

}

private void AddUser_Click(object sender, RoutedEventArgs e)

{

var newUser = new User { Name = "NewUser", Age = 20 };

_dbContext.Users.Add(newUser);

_dbContext.SaveChanges();

LoadUsers();

}

private void UpdateUser_Click(object sender, RoutedEventArgs e)

{

User selectedUser = UserDataGrid.SelectedItem as User;

if (selectedUser!= null)

{

selectedUser.Age++;

_dbContext.SaveChanges();

LoadUsers();

}

}

private void DeleteUser_Click(object sender, RoutedEventArgs e)

{

User selectedUser = UserDataGrid.SelectedItem as User;

if (selectedUser!= null)

{

_dbContext.Users.Remove(selectedUser);

_dbContext.SaveChanges();

LoadUsers();

}

}

private void QueryUser_Click(object sender, RoutedEventArgs e)

{

List<User> users = _dbContext.Users.Where(u => u.Age > 20).ToList();

UserDataGrid.ItemsSource = users;

}

}

}

针对SQLite数据库

定义数据模型:与MySQL示例中的 User 类相同。

配置DbContext:

csharp

using Microsoft.EntityFrameworkCore;

public class MySqliteDbContext : DbContext

{

public DbSet<User> Users { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

{

optionsBuilder.UseSqlite("Data Source=your_database.db");

}

}

界面设计:可以复用MySQL示例中的 MainWindow.xaml 。

实现CRUD操作:在 MainWindow.xaml.cs 中,修改构造函数和 LoadUsers 方法使用SQLite的 DbContext 。

csharp

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows;

namespace MyWpfApp

{

public partial class MainWindow : Window

{

private MySqliteDbContext _dbContext;

public MainWindow()

{

InitializeComponent();

_dbContext = new MySqliteDbContext();

LoadUsers();

}

private void LoadUsers()

{

List<User> users = _dbContext.Users.ToList();

UserDataGrid.ItemsSource = users;

}

// 其他CRUD方法与MySQL示例相同

}

}

通过以上步骤,你可以在WPF应用中分别使用EF框架针对MySQL和SQLite数据库实现表界面显示及CRUD功能。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OajdEekIErWZufaf71RkWXEw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券