当前位置: 首页 > article >正文

Sqlite安装配置及使用

一、下载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.kler.cn/a/133740.html

相关文章:

  • 深度学习神经网络在机器人领域应用的深度剖析:原理、实践与前沿探索
  • 算法学习第一弹——C++基础
  • Vue3.js - 一文看懂Vuex
  • Nuxt.js 应用中的 schema:beforeWrite 事件钩子详解
  • 认识一下Unicorn
  • WEB攻防-通用漏洞SQL注入sqlmapOracleMongodbDB2等
  • vscode中Chinese (Simplified)汉化无效解决方法
  • 我叫:选择排序【JAVA】
  • 教程:使用 Keras 优化神经网络
  • qml制作简单的播放器--MediaPlayer
  • 如何使用贝锐花生壳内网穿透远程访问JupyterNotebook?
  • springboot项目yml文件中使用${}配置
  • linux下安装python3.8(有坑)
  • ping命令使用示例解析
  • ubuntu20.04在docker下运行ros-noetic进行开发
  • 【电路笔记】-最大功率传输
  • vulhub redis-4-unacc
  • ​软考-高级-系统架构设计师教程(清华第2版)【第14章 云原生架构设计理论与实践(P496~526)-思维导图】​
  • 文本向量化
  • PTA-6-42 设计门票(抽象类)
  • [C/C++] 数据结构 LeetCode:用队列实现栈
  • 【碰碰球】弹珠游戏-微信小程序项目开发流程详解
  • 【短文】【踩坑】可以在Qt Designer给QTableWidge添加右键菜单吗?
  • 最长回文子序列 递归与动态规划
  • 【精选】项目管理工具——Maven详解
  • STM32的启动流程