使用SqlSugar保存数据

使用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();
        }
    }
}
复制代码

 

posted on   hanzq_go  阅读(613)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示