Sqlite安装配置及使用

news2024/11/28 10:51:20

一、下载SQLite

Sqlite官网

我下载的是3370000版本:sqlite-dll-win64-x64-3370000.zip 和 sqlite-tools-win32-x86-3370000.zip 

二、解压下载的两个压缩包 

 三、配置环境

四、检查是否安装配置成功

  • win+R:输入cmd调出命令窗口,输入sqlite3后回车查看sqlite版本

五、Navcate连接Sqlite 

 

  • 以上就是安装配置Sqlite,并使用数据库管理工具---Navicat简单创建或者打开数据库文件,在管理工具中可以对db文件中的表进行修改

六、C#代码中调用SQLite数据库(db文件)

  • 新建项目
  • 在NuGet程序包内,搜索System.Data.Sqlite  安装Sqlite类库 

  • 创建SQLiteHelper类 
    public class SQLiteHelper
    {
         ///可以创建数据库文件
         public static void CreateDBFile(string fileName)
         {
             string path = System.Environment.CurrentDirectory + @"/Data/";
             if (!Directory.Exists(path))
             {
                 Directory.CreateDirectory(path);
             }
             string databaseFileName = path + fileName;
             if (!File.Exists(databaseFileName))
             {
                 SQLiteConnection.CreateFile(databaseFileName);
             }
        }
 
          //生成连接字符串
          private static string CreateConnectionString()
          {
              SQLiteConnectionStringBuilder connectionString = new SQLiteConnectionStringBuilder();
              connectionString.DataSource = System.Environment.CurrentDirectory + @"\StudentDB.db";//这里StudentDB.db文件中的Grade表是我在Navicat中新创建的,用来测试
              string conStr = connectionString.ToString();
              return conStr;
          }

         /// <summary>
         /// 对插入到数据库中的空值进行处理
         /// </summary>
         /// <param name="value"></param>
         /// <returns></returns>
         public static object ToDbValue(object value)
         {
                 if (value == null)
                     {
                         return DBNull.Value;
                     }
                 else
                     {
                         return value;
                     }
         }

          /// <summary>
          /// 对从数据库中读取的空值进行处理
          /// </summary>
          /// <param name="value"></param>
          /// <returns></returns>
          public static object FromDbValue(object value)
          {
                 if (value == DBNull.Value)
                     {
                         return null;
                     }
               else
                     {
                         return value;
                     }
             }

          /// <summary>
          /// 执行非查询的数据库操作
          /// </summary>
          /// <param name="sqlString">要执行的sql语句</param>
          /// <param name="parameters">参数列表</param>
          /// <returns>返回受影响的条数</returns>
          public static int ExecuteNonQuery(string sqlString, params SQLiteParameter[] parameters)
          {
                 string connectionString = CreateConnectionString();
                 using (SQLiteConnection conn = new SQLiteConnection(connectionString))
                 {
                    conn.Open();
                    using (SQLiteCommand cmd = conn.CreateCommand())
                    {
                       cmd.CommandText = sqlString;
                       foreach (SQLiteParameter parameter in parameters)
                       {
                            cmd.Parameters.Add(parameter);
                       }
                       return cmd.ExecuteNonQuery();
                    }
                 }
          }

         /// <summary>
         /// 执行查询并返回查询结果第一行第一列
         /// </summary>
         /// <param name="sqlString">SQL语句</param>
         /// <param name="sqlparams">参数列表</param>
         /// <returns></returns>
         public static object ExecuteScalar(string sqlString, params SQLiteParameter[] parameters)
         {
                 string connectionString = CreateConnectionString();
                 using (SQLiteConnection conn = new SQLiteConnection(connectionString))
                     {
                         conn.Open();
                         using (SQLiteCommand cmd = conn.CreateCommand())
                            {
                                cmd.CommandText = sqlString;
                                foreach (SQLiteParameter parameter in parameters)
                                     {
                                         cmd.Parameters.Add(parameter);
                                     }
                                 return cmd.ExecuteScalar();
                             }
                     }
             }

         /// <summary>
         /// 查询多条数据
         /// </summary>
         /// <param name="sqlString">SQL语句</param>
         /// <param name="parameters">参数列表</param>
         /// <returns>返回查询的数据表</returns>
         public static DataTable GetDataTable(string sqlString, params SQLiteParameter[] parameters)
         {
                string connectionString = CreateConnectionString();
                using (SQLiteConnection conn = new SQLiteConnection(connectionString))
                     {
                         conn.Open();
                         using (SQLiteCommand cmd = conn.CreateCommand())
                             {
                                 cmd.CommandText = sqlString;
                                 foreach (SQLiteParameter parameter in parameters)
                                     {
                                         cmd.Parameters.Add(parameter);
                                     }
                                 DataSet ds = new DataSet();
                                 SQLiteDataAdapter adapter = new SQLiteDataAdapter(cmd);
                                 adapter.Fill(ds);
                                 conn.Close();
                                 return ds.Tables[0];
                             }
                     }
             }
         
    }
  • 调用SQLiteHelper类 
public class Program
{
    static void Main(string[] args)
    {
        GetAllGrade();
    }

    /// <summary>
    /// 查询所有年级
    /// </summary>
    /// <returns></returns>
    public static List<GradeEty> GetAllGrade()
    {
        List<GradeEty> gradeEties = new List<GradeEty>();

        SQLiteHelper sQLiteHelper = new SQLiteHelper();
        string sqlQuery = "SELECT * FROM 'Grade';";
        SQLiteParameter[] parameters = new SQLiteParameter[]{};

        DataTable dt = SQLiteHelper.GetDataTable(sqlQuery, parameters);
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            string Id = dt.Rows[i]["ID"].ToString();
            string GradeName = dt.Rows[i]["GradeName"].ToString();


            GradeEty clientEty = new GradeEty(Id, GradeName);
            gradeEties.Add(clientEty);
        }
        return gradeEties;
    }
}

public class GradeEty
{
    public string Id { get; set; }
    public string Name { get; set; }

    public GradeEty(string id, string name)
    {
        Id = id;
        Name = name;
    }
}
  • db文件中的Grade表

 

  • 拿到db文件中Grade表的数据,转化成List集合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1218607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年咸阳市《网络建设与运维》赛题解析------四、安全配置

安全配置 说明:IP地址按照题目给定的顺序用“ip/mask”表示,IPv4 any地址用0.0.0.0/0,IPv6 any地址用::/0,禁止用地址条目,否则按零分处理。 1.FW1配置IPv4 nat,实现集团产品1段IPv4访问Internet IPv4,转换ip/mask为200.200.200.16/28,保证每一个源IP产生的所有会话将…

Python 如何实现外观设计模式?什么是 Facade 外观设计模式?Python 设计模式示例代码

什么是&#xff08;Facade&#xff09;外观设计模式&#xff1f; 外观&#xff08;Facade&#xff09;设计模式是一种结构型设计模式&#xff0c;它提供了一个简化复杂系统接口的高级接口&#xff0c;使得系统更容易使用。外观模式通过定义一个高层接口&#xff0c;隐藏了系统…

花 200 元测试 1300 个实时数据同步任务

背景 对于将数据作为重要生产资料的公司来说&#xff0c;超大规模的数据迁移同步系统( 1k、5k、10k 条同步任务)是刚需。 本文以此为出发点&#xff0c;介绍近期 CloudCanal 所做的一个容量测试&#xff1a;在单个 CloudCanal 集群上创建 1300 实时任务&#xff0c;验证系统是…

2023年中国逆流式冷却塔性能特点、应用领域及市场规模分析[图]

按冷却塔热交换时气流和水流方向不同的配置&#xff0c;机力通风冷却塔又可分为横流式冷却塔、逆流式冷却塔&#xff0c;目前主流的冷却塔型式为逆流式冷却塔&#xff0c;逆流式冷却塔&#xff08;counterflowcoolingtower&#xff09;是指水流在塔内垂直落下&#xff0c;气流方…

思维导图软件 Xmind mac中文版特点介绍

XMind 2022 mac是一款思维导图软件&#xff0c;可以帮助用户创建各种类型的思维导图和概念图。 XMind mac软件特点 - 多样化的导图类型&#xff1a;XMind提供了多种类型的导图&#xff0c;如鱼骨图、树形图、机构图等&#xff0c;可以满足不同用户的需求。 - 强大的功能和工具&…

扩散模型实战(十):Stable Diffusion文本条件生成图像大模型

推荐阅读列表&#xff1a; 扩散模型实战&#xff08;一&#xff09;&#xff1a;基本原理介绍 扩散模型实战&#xff08;二&#xff09;&#xff1a;扩散模型的发展 扩散模型实战&#xff08;三&#xff09;&#xff1a;扩散模型的应用 扩散模型实战&#xff08;四&#xff…

(免费领源码)基于Vue+Node.js的宠物领养网站的设计与开发83352-计算机毕业设计项目选题推荐

摘 要 随着互联网大趋势的到来&#xff0c;社会的方方面面&#xff0c;各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去&#xff0c;而其中最好的方式就是建立网络管理系统&#xff0c;并对其进行信息管理。由于现在网络的发达&#xff0c;宠物领养网站的…

User parameters自定义用户参数 (zabbix监控)

1、介绍和用法 ① 介绍 自定义用户参数&#xff0c;也就是自定义key 有时&#xff0c;你可能想要运行一个代理检查&#xff0c;而不是Zabbix的预定义 你可以编写一个命令来检索需要的数据&#xff0c;并将其包含在代理配置文件("UserParameter"配置参数)的用户参数中…

m1 rvm install 3.0.0 Error running ‘__rvm_make -j8‘

在使用M1 在安装cocopods 前时&#xff0c;安装 rvm install 3.0.0遇到 rvm install 3.0.0 Error running __rvm_make -j8 备注: 该图片是借用其他博客图片&#xff0c;因为我的环境解决完没有保留之前错误信息。 解决方法如下&#xff1a; 1. brew uninstall --ignore-depe…

物理驱动深度学习方法总结

一、物理驱动深度学习方法总结 现有博主更新物理驱动深度学方法总体介绍 二、 PINN介绍 PINN综述Blog介绍&#xff1a;内嵌物理知识神经网络 &#xff08;Physics Informed Neural Network&#xff0c;简称PINN&#xff09; 是一种科学机器在传统数值领域的应用方法&…

【C++学习手札】模拟实现string

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;缶ビール—みゆな 0:41━━━━━━️&#x1f49f;──────── 2:52 &#x1f504; ◀️ ⏸ ▶️ ☰ &…

[模版总结] - 树的基本算法2 - BST

BST定义 BST - Binary Search Tree, 即二叉搜索树(有序二叉树) 特性 中序遍历有序查找/插入/删除某个数值可以通过 即树的高度&#xff0c;最优,最坏 . 有多种改进BST可以动态维持插入删除后树结构能尽可能保持平衡 BST基本操作 查询 - 二分查找 搜索数值 - 二分法 class…

JTS: 25 Index 索引

文章目录 版本代码 版本 org.locationtech.jts:jts-core:1.19.0 链接: github 代码 package pers.stu.index;import org.locationtech.jts.geom.*; import org.locationtech.jts.index.hprtree.HPRtree; import org.locationtech.jts.index.quadtree.Quadtree; import org.lo…

【MySQL8】1130 - Host ‘***‘ is not allowed to connect to this MySOL server

问题描述 使用 Navicat 连接 MySQL8 报错&#xff1a; 1130 - Host *** is not allowed to connect to this MySOL server解决方案 use mysql;select host ,user from user; -- 将 root 用户的主机&#xff08;host&#xff09;值修改为 %&#xff0c;即允许从任何主机连接 …

电脑集中管理软件有哪些?电脑集中管控怎么做

电脑集中管理软件有哪些&#xff1f;电脑集中管控怎么做 电脑集中管理软件是指通过一种软件或系统&#xff0c;对多台电脑进行集中管理和控制的工具。这种软件通常具备远程控制、软硬件监控、自动部署等功能。可以方便企业或组织统一管理电脑资源&#xff0c;提高工作效率。今…

新版软考高项试题分析精选(四)

请点击↑关注、收藏&#xff0c;本博客免费为你获取精彩知识分享&#xff01;有惊喜哟&#xff01;&#xff01; 1、一般而言&#xff0c;大型软件系统中实现数据压缩功能&#xff0c;工作在OSI参考模型的&#xff08; &#xff09;。 A.应用层 B.表示层 C.会话层 D.网络层…

Odoo 15开发手册第七章 记录集 - 使用模型数据

在前面的章节中&#xff0c;我们概览了模型创建以及如何向模型加载数据。现在我们已有数据模型和相关数据&#xff0c;是时候学习如何编程与其进行交互了。 业务应用需要业务逻辑来计算数据、执行验证或自动化操作。Odoo框架API为开发者提供了工具用于实现这种业务逻辑。大多数…

有Mac或无Mac电脑通用的获取安卓公钥的方案

从2023年9月开始&#xff0c;所有上架应用市场的app都需要进行APP备案。 其中后端服务器在阿里云的可以在阿里云备案&#xff0c;后端服务器在腾讯云的可以在腾讯云备案。但无论你是在什么云厂商里做备案&#xff0c;无一例外的是&#xff0c;无论是上架安卓应用还是上架IOS应…

如何将图片转为excel或word?(客户端)

演示软件&#xff1a;金鸣表格文字识别大师3.6.1&#xff08;新版本界面可能会略有不同&#xff09; 第一部分 将图片转为excel或文表混合的word 一般的软件要将图片转为可编辑的excel&#xff0c;都需要待识别的图片要有明显清晰的表格线&#xff0c;但我们程序现已克服了这…

多线程概述及创建

什么是线程&#xff1f; 线程(thread)是一个程序内部的一条执行路径。 我们之前启动程序执行后&#xff0c;main方法的执行其实就是一条单独的执行路径。 程序中如果只有一条执行路径&#xff0c;那么这个程序就是单线程的程序。 多线程是什么&#xff1f; 多线程是指从软…