在现代软件开发中,操作数据库是常见的需求。WinForms 应用程序作为桌面应用的一种,经常需要与数据库进行交互。SqlSugar 是一个简单而强大的 ORM(对象关系映射)库,它可以让开发者用更少的代码完成数据库操作。本文将介绍如何在 WinForms 应用程序中使用 SqlSugar 来操作数据库。
SqlSugar 简介
SqlSugar 是一款支持 .NET 的 ORM 框架,它支持 Code-First 和 Database-First 开发模式,提供了丰富的 API 来操作数据库,包括增删改查等基本操作,以及复杂查询、事务处理等高级功能。
安装 SqlSugar
在 WinForms 项目中使用 SqlSugar 之前,需要先安装 SqlSugar 的 NuGet 包。可以通过 Visual Studio 的 NuGet 包管理器搜索并安装 SqlSugar
。
配置数据库连接
使用 SqlSugar 操作数据库之前,需要配置数据库连接。以下是一个配置 SQL Server 数据库连接的示例:
csharp
// 创建 SqlSugarClient 实例
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "Server=服务器地址;Database=数据库名;Uid=用户名;Pwd=密码;",
DbType = DbType.SqlServer,
IsAutoCloseConnection = true,
InitKeyType = InitKeyType.Attribute
});
基本的 CRUD 操作
创建(Create)
以下是使用 SqlSugar 插入数据的示例:
csharp
var student = new Student() { Name = "张三", Age = 20 };
int id = db.Insertable(student).ExecuteReturnIdentity();
读取(Read)
以下是使用 SqlSugar 查询数据的示例:
csharp
var students = db.Queryable<Student>().ToList();
更新(Update)
以下是使用 SqlSugar 更新数据的示例:
csharp
var student = db.Queryable<Student>().First(it => it.Id == 1);
student.Age = 21;
db.Updateable(student).ExecuteCommand();
删除(Delete)
以下是使用 SqlSugar 删除数据的示例:
csharp
db.Deleteable<Student>(it => it.Id == 1).ExecuteCommand();
使用实体类
在 SqlSugar 中,可以通过在实体类上使用属性来定义数据库表的映射关系。以下是一个简单的实体类示例:
csharp
[SugarTable("Student")]
public class Student
{
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
复杂查询
SqlSugar 支持联表查询、条件查询等复杂操作。以下是一个联表查询的示例:
csharp
var list = db.Queryable<Student, School, (int)(studentId, schoolId) => (student.Id, school.SchoolId))
.Where((student, school) => student.SchoolId == school.Id)
.ToList();
事务处理
SqlSugar 也支持事务处理,以下是一个使用事务的示例:
csharp
db.Ado.UseTran(() =>
{
db.Insertable(new Student() { Name = "李四", Age = 19 }).ExecuteCommand();
db.Insertable(new Student() { Name = "王五", Age = 18 }).ExecuteCommand();
throw new Exception("出错了,回滚");
});
结论
SqlSugar 是一个功能强大且易于使用的 ORM 框架,它可以显著提高 WinForms 应用程序开发数据库相关功能的效率。通过简单的配置和代码示例,你可以快速掌握 SqlSugar 的基本用法,并将其应用到你的项目中。
往期精品推荐: