WPF MVVM模式 C#访问SQLSERVER 实现增删、修改、登录
时间: 2024-09-12 19:05:35 浏览: 28
WPF (Windows Presentation Foundation) MVVM (Model-View-ViewModel) 模式是一种软件设计模式,它将应用程序的用户界面、数据模型以及业务逻辑分离开来,提高代码的可维护性和复用性。在C#中结合MVVM使用SQL Server数据库,我们可以按照以下步骤实现:
1. **模型(Model)**: 创建一个`DataContext`类作为模型,它将SQL Server数据库的操作封装起来。这包括`DbContext`类,使用Entity Framework或其他ORM工具(如Dapper)操作数据。
```csharp
public class MyDataContext : DbContext
{
public DbSet<User> Users { get; set; }
// 添加其他表的定义...
}
```
2. **视图(View)**: 使用XAML编写用户界面,WPF的控件绑定到`ViewModel`中的属性。例如,对于登录功能,可以创建`LoginViewModel`:
```xaml
<Window x:Class="YourProject.LoginWindow"
xmlns="...">
<StackPanel>
<TextBox Text="{Binding Username}" />
<PasswordBox Password="{Binding Password}" />
<Button Content="Login" Command="{Binding LoginCommand}"/>
</StackPanel>
</Window>
```
3. **视图模型(ViewModel)**: `LoginViewModel`会包含用于处理登录逻辑的方法,比如`ExecuteLoginCommand`,以及依赖注入`MyDataContext`实例来操作数据库:
```csharp
public class LoginViewModel : INotifyPropertyChanged
{
private string _username;
private string _password;
public string Username
{
get => _username;
set { _username = value; OnPropertyChanged(); }
}
// 类似于此
public ICommand LoginCommand => new RelayCommand(ExecuteLogin);
private void ExecuteLogin()
{
using var context = new MyDataContext();
// 根据用户名和密码查询数据库并处理逻辑
}
// ... 其他方法和属性
}
```
4. **命令(Command)**: 利用`ICommand`接口,如`RelayCommand`,可以更优雅地处理UI事件,并在后台线程中执行数据库操作,避免阻塞UI线程。
5. **数据交互**: 当需要添加、删除或修改记录时,通过视图模型更新`DataContext`,然后由其自动反映到界面上。