使用SqlSugar保存数据

发布时间 2023-09-09 00:17:20作者: hanzq_go

使用sqlSugar库进行数据库操作,相比原生ADO.NET要简单很多,这里演示使用SQLsugar进行简单的增删改查的使用方法。

1、通过NuGet安装sqlsugar;

2、创建一个SqlSugarClient对象,并设置相关参数,如下:

//建立数据库连接
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig
{
    ConnectionString = connString,
    DbType = SqlSugar.DbType.SqlServer,
    IsAutoCloseConnection = true
}); 

3、创建一个与数据表相对应的实体类,如下

[SugarTable("ParaValue")]
public class ParaValue
{
    [SugarColumn(IsPrimaryKey = true,IsIdentity =true,ColumnName ="id")]
    public int Id { get; set; }

    [SugarColumn(ColumnName="name")]
    public string Name { get; set; }

    [SugarColumn(ColumnName = "value")]
    public float Value { get; set; }

    [SugarColumn(ColumnName = "note")]
    public string Note { get; set; }
}

注意,[SugarTable("ParaValue")]是数据表的名称;[SugarColumn(ColumnName="name")]是数据表中列名。

重点注意:对于主键,自增列,一定要使用SugarColumn(IsPrimaryKey = true,IsIdentity =true标记,

插入数据时,一般自增列是不需要赋值,数据库会自动增加,但是如果没有IsIdentity =true标记,插入数据就会报错。

4、执行数据库操作,需要:

第一步,先打开数据库,db.Ado.Open()

第二步,执行数据库操作,

第三步,关闭数据库,db.Ado.Close();

由于设置了IsAutoCloseConnection = true,sqlsugar在执行数据库操作时自动打开数据库,操作完成后自动关闭数据库。

需要注意的是,虽然 SQLSugar 库在执行数据库操作时会自动打开和关闭连接,但在某些情况下,可能需要显式地控制连接的打开和关闭过程。

在这些情况下,你可以选择自己手动打开和关闭数据库连接,而不依赖于 SQLSugar 库的自动管理功能。

            // 插入数据示例
            var paraValue = new ParaValue { Name = "John" + DateTime.Now.ToString(), Value = 20.78f };
            db.Insertable(paraValue).ExecuteCommand();
//查询数据
//var result =db.Queryable<ParaValue>().ToList();
var result = db.Queryable<ParaValue>().Where(u => u.Id > 2).ToList();
foreach (ParaValue paraValue in result)
{
    Console.WriteLine(paraValue.Name);
}
            //修改数据
            db.Updateable<ParaValue>()
                .SetColumns(p => new ParaValue { Name = "hanzq", Value = 777.99f, Note = "adsfasdf" })
                .Where(p => p.Id == 2)
                .ExecuteCommand();

 

完整代码如下:

using SqlSugar;

namespace sqlsugar库测试
{
    [SugarTable("ParaValue")]
    public class ParaValue
    {
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnName = "id")]
        public int Id { get; set; }

        [SugarColumn(ColumnName = "name")]
        public string Name { get; set; }

        [SugarColumn(ColumnName = "value")]
        public float Value { get; set; }

        [SugarColumn(ColumnName = "note")]
        public string Note { get; set; }
    }
}
using SqlSugar;
using System;
using System.Configuration;
using System.Windows.Forms;


namespace sqlsugar库测试
{
    public partial class Form1 : Form
    {
        string connString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
        }

        SqlSugarClient db;
        private void Form1_Load(object sender, EventArgs e)
        {
            
            //建立数据库连接
            db = new SqlSugarClient(new ConnectionConfig
            {
                ConnectionString = connString,
                DbType = SqlSugar.DbType.SqlServer,
                IsAutoCloseConnection = true
            }); 
            
            Console.WriteLine(db.Ado.Connection.State);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 插入数据示例
            var paraValue = new ParaValue { Name = "John" + DateTime.Now.ToString(), Value = 20.78f };
            db.Insertable(paraValue).ExecuteCommand();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //查询数据
            //var result =db.Queryable<ParaValue>().ToList();
            var result = db.Queryable<ParaValue>().Where(u => u.Id > 2).ToList();
            foreach (ParaValue paraValue in result)
            {
                Console.WriteLine(paraValue.Name);
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //修改数据
            db.Updateable<ParaValue>()
                .SetColumns(p => new ParaValue { Name = "hanzq", Value = 777.99f, Note = "adsfasdf" })
                .Where(p => p.Id == 2)
                .ExecuteCommand();
        }
    }
}