首页 > 数据库 >SqlSugar操作Sqlite数据库

SqlSugar操作Sqlite数据库

时间:2024-06-24 09:00:34浏览次数:34  
标签:Sqlite 数据库 db 主键 void Tom public SqlSugar

SqlSugar操作Sqlite数据库

SqlSugar官网

.net core和.net5/.net6/.net7/.net8/.net9/.net10

  安装SqlSugarCore。

net framework4.6+ 

  安装SqlSugar

以下代码都在一个SqlSugarMethod类中。

获得数据库对象:

  这里要注意的是FilePath路径为生成程序的目录\bin\Debug\net8.0内,而不是代码目录内。

 private string FilePath = Environment.CurrentDirectory + @"\SqlSugarDB\SugarSQL.db";
 private SqlSugarClient db = null;

 /// <summary>
 /// 获得数据库对象
 /// </summary>
 /// <returns></returns>
 public void GetSql()
 {
     db = new SqlSugarClient(new ConnectionConfig()
     {
         ConnectionString = $"Data Source={FilePath}", // SQLite 连接字符串
         DbType = DbType.Sqlite, // 指定数据库类型为 SQLite
         IsAutoCloseConnection = true, // 自动关闭连接
         InitKeyType = InitKeyType.Attribute//从实体特性中读取主键自增列信息
     });
 }

创建数据库:

  /// <summary>
  /// 创建数据库
  /// </summary>
  public bool CreateBase()
  {
      return db.DbMaintenance.CreateDatabase();
  }

创建数据表:

/// <summary>
/// 创建数据表
/// </summary>
public void CreateTable()
{
    //两种方法都能创建表
    //db.CodeFirst.InitTables(typeof(Student));
    db.CodeFirst.InitTables<Student>();
}

//实体与数据库结构一样
public class Student
{
    //数据是自增需要加上IsIdentity
    //数据库是主键需要加上IsPrimaryKey
    //注意:要完全和数据库一致2个属性
    [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
    public int Id { get; set; }

    public int? SchoolId { get; set; }
    public string? Name { get; set; }
}

查询一个表中全部数据:

/// <summary>
/// 查询一个表全部数据
/// </summary>
/// <returns></returns>
public List<Student> QueryAll()
{
    //查询表的所有
    return db.Queryable<Student>().ToList();
}

 

根据某些条件查询: 

 /// <summary>
 /// 查询
 /// </summary>
 /// <param name="a"></param>
 /// <param name="b"></param>
 /// <param name="c"></param>
 public void Query(out Student a, out List<Student> b, out List<Student> c)
 {
     // 跟据主键查询:id为参数
     int id = 2;
     a = db.Queryable<Student>().InSingle(id);

     //根据某个数据查询:name为方法参数
     string name="Tom";
     b = db.Queryable<Student>().Where(s => s.Name == name).ToList();

     //模糊查询:方法参数key为关键字
     string key = "o";
     c = db.Queryable<Student>().Where(s => s.Name.Contains(key)).ToList();
 }

插入数据:

 /// <summary>
 /// 插入数据
 /// </summary>
 public void InsertData()
 {
     var Tom = new Student()
     {
         Id = 2,
         SchoolId = 3,
         Name = "Tom"
     };
     db.Insertable(Tom).ExecuteCommand();
 }

 

 更新数据:

 /// <summary>
 /// 更新数据
 /// </summary>
 public void UpdateData()
 {
     var Tom = new Student()
     {
         Id = 2,
         SchoolId = 3505,
         Name = "Tom"
     };
     db.Updateable(Tom).ExecuteCommand();
 }

 

删除数据:

public void DeleteData()
{
    //根据主键
    db.Deleteable<Student>().Where(it => it.Id == 1).ExecuteCommand();
    //根据主键数组
    db.Deleteable<Student>().In(new int[] { 1, 2 }).ExecuteCommand();
}

标签:Sqlite,数据库,db,主键,void,Tom,public,SqlSugar
From: https://www.cnblogs.com/shieryoufeng/p/18264296

相关文章

  • 第13关:存储过程1、第14关:存储过程2。(2021数据库期末一)
    目录首先需要学习和了解的知识第13关:存储过程1任务描述答案 第14关:存储过程2任务描述答案本篇博客的答案博主是学习别人得来的,敢于借鉴和学习哈哈!!首先需要学习和了解的知识了解什么是存储过程以及存储过程的基本语法。(作者博客专栏或者b站学习)了解在命令行中,执......
  • 向量数据库Milvus快速入门——AIDOCZH.COM上线Milvus中文文档
    Milvus快速入门——AIDOCZH.COM上线Milvus中文文档文章目录Milvus快速入门——AIDOCZH.COM上线Milvus中文文档Milvus官方文档的中文翻译Milvus介绍什么是Milvus向量数据库?关键概念非结构化数据嵌入向量向量相似性搜索为什么选择Milvus?支持的索引和度量标准是什么?索......
  • 如何使用ig507金融数据库的股票接口,股票API来获取MACD指标
    一、MACD指标简介MACD(MovingAverageConvergenceDivergence,移动平均收敛/发散)是一种趋势跟踪动量指标,用于分析股票或其他金融产品的价格趋势。MACD由两部分组成:差离值(DIF)和信号线(DEA)。DIF是短期(通常12天)指数移动平均线(EMA)与长期(通常26天)EMA的差值,再通过一个平滑期(通常9天)的EMA......
  • 最全Redis数据库Linux安装
    概念所有的I/O操作全在内存中进行,速度非纯快,性能非常搞。如果断电或停止服务,数据就会消失,而内存型数据库恰好可以弥补类似于MySQL等关系型数据库在硬盘当中进行I/O操作的速度上的局限。redis是key-values键值对的存储格式,非关系型安装过程安装redis数据库之前确保在Linux......
  • 如何使用ig507金融数据库的股票接口,股票API来获取MACD指标
    一、MACD指标简介MACD(MovingAverageConvergenceDivergence,移动平均收敛/发散)是一种趋势跟踪动量指标,用于分析股票或其他金融产品的价格趋势。MACD由两部分组成:差离值(DIF)和信号线(DEA)。DIF是短期(通常12天)指数移动平均线(EMA)与长期(通常26天)EMA的差值,再通过一个平滑期(通常9天)的E......
  • 【openGauss、PostgreSQL】openGauss、PostgreSQL数据库通用查表字段信息脚本-v202406
    【openGauss、PostgreSQL】openGauss、PostgreSQL数据库通用查表字段信息脚本-v20240620-2216openGauss、PostgreSQL数据库通用查表字段信息脚本-v20240620-2216openGauss、PostgreSQL数据库通用查表字段信息脚本-v20240620-2216此脚本,openGauss、PostgreSQL都可执......
  • mysql 如何分配root账号创建数据库的权限
    1.mysql如何分配root账号创建数据库的权限在MySQL中,root用户通常具有所有的权限,包括创建数据库的权限。但是,如果我们想要为另一个用户分配创建数据库的权限,或者想要限制root用户对某个特定数据库或服务器的权限(尽管这在实际操作中并不常见,因为root用户通常应该是无限制的......
  • mysql 如何分配root账号创建数据库的权限
    1.mysql如何分配root账号创建数据库的权限在MySQL中,root用户通常具有所有的权限,包括创建数据库的权限。但是,如果我们想要为另一个用户分配创建数据库的权限,或者想要限制root用户对某个特定数据库或服务器的权限(尽管这在实际操作中并不常见,因为root用户通常应该是无限......
  • 安全加固 MariaDB 和 MySQL 数据库
    安全加固MariaDB和MySQL数据库在今天的网络环境中,保护数据库安全至关重要,特别是像MariaDB和MySQL这样的流行数据库。本文将介绍一些关键的安全加固步骤,以确保数据库系统的安全性和稳定性。1.数据库版本和基础设置首先,确保你的数据库版本是最新的,并且使用安全的......
  • python连接mysql、sqlserver、oracle、postgresql数据库进行封装
    python连接mysql、sqlserver、oracle、postgresql数据库进行封装python连接mysql、sqlserver、oracle、postgresql数据库进行封装详解一、引言二、python连接MySQL数据库进行封装三、python连接SQLServer数据库进行封装四、Python连接Oracle数据库进行封装五、Python连......