Sqlite3是一款优秀的数据库软件,在嵌入式设备和移动端都有使用,我司现在有些项目使用的数据库是access,说实话,对这些不太感冒,我还是喜欢优雅简单的东东,于是乘着这几天休息的时间学习了下在c#中使用sqlite3。先看代码

using System;
using System.Data.SQLite;
using System.IO;
using System.Data;
using System.Linq;

namespace sqlite3
{
    class Program
    {
        static string path = @"./test.sqlite";
        static SQLiteConnection connection = null;

        static void CreateDB()
        {
            connection = new SQLiteConnection("data source = " + path);
            connection.Open();
            connection.Close();
        }

        static void CreateTable()
        {
            connection.Open();

            // create table
            SQLiteCommand command = connection.CreateCommand();
            command.CommandText = "CREATE TABLE IF NOT EXISTS t1(id varchar(4), score int)";
            command.ExecuteNonQuery();

            // insert into some data
            Random random = new Random();
            for (int i = 0; i < 100; i++)
            {
                command.CommandText = string.Format("insert into t1(id, score) values({0}, {1})",  i+1, random.Next());
                command.ExecuteNonQuery();

                Console.Clear();
                Console.WriteLine("wrote {0} items", i + 1);
            }

            connection.Close();
        }

        static void DeleteDB()
        {
            if (File.Exists(path))
            {
                File.Delete(path);
            }
        }

        static void QueryDB()
        {
            connection.Open();

            // query the rows
            SQLiteCommand command = connection.CreateCommand();
            command.CommandText = "select * from t1 limit 10";

            SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
            DataTable table = new DataTable();
            adapter.Fill(table);

            foreach(DataRow row in table.Rows)
            {
                Console.WriteLine($"id: {row["id"]} score: {row["score"]}");
            }

            // get the rows' count
            command.CommandText = "select count(*) from t1";
            Int64 cnt = (Int64)command.ExecuteScalar();
            Console.WriteLine($"table t1 has {cnt} rows");

            connection.Close();
        }

        static void Main(string[] args)
        {
            DeleteDB();
            CreateDB();
            CreateTable();
            QueryDB();

            Console.ReadKey();
        }
    }
}

实现了一些简单的操作,比较以往使用的mysql,sqlite3的优点是便捷,安装也简单,性能也可以。

主要参考:

  1. https://blog.csdn.net/kasama1953/article/details/52655497
  2. https://www.cnblogs.com/leemano/p/6578050.html

在c#中使用sqlite3的更多相关文章

  1. python django中使用sqlite3数据库 存储二进制数据ByteArray

    在python中使用sqlite3数据库存储二进制流数据ByteArray,在django使用sqlite3数据库时,有时候也要注意最好使用二进制流ByteArray插入字符串. 使用ByteArra ...

  2. MFC中使用sqlite3操作数据库

    需要用到的文件有sqlite3.h .sqlite3.dll.sqlite3.lib.网上很多人分享下载地址这里不再赘述. 将这三个文件拷贝到自己新建MFC项目目录下,在解决方案窗口下 添加现有项,选 ...

  3. node-webkit中使用sqlite3(MAC平台)

    前言 最近使用node-webkit开发一款博客发布软件,来替换难用的Windows Live Writer(主要是对Markdown标签的支持很差劲).为了解决博文信息临时保存的问题,想到了使用sq ...

  4. 在MFC中支持sqlite3

    在vc环境下支持sqlite3的方法有很多,sqlite官网也有推荐sqlitewrappers列表,我选用的是CppSqlite 建立MFC工程的步骤我就不赘述了,以下操作均假设你已经创建好了一个M ...

  5. Linux系统中关于Sqlite3中文乱码问题及解决办法

    新做的一个项目在本地(Win8)测试时没有问题,但传到服务器(Linux)时从Sqlite3数据库查询到的数据中文却是乱码(数据库中是正常的) 将php文件.html文件都设置成统一的utf8还是一样 ...

  6. centos7 python3.5中引入sqlite3

    在centos系统中创建Django app,报错如下: django.core.exceptions.ImproperlyConfigured: Error loading either pysql ...

  7. node-webkit中使用sqlite3

    sqlite3的官方文档提到:nodejs和node-webkit的ABI不同,所以默认的安装方式: npm install sqlite3 安装的sqlite3是无法使用的,需要重新编译. 编译方法 ...

  8. [置顶] Android中使用sqlite3操作SQLite

    SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令.本文档提供一个样使用sqlite3的简要说明. 一.创建数据库:  1.将sqlit ...

  9. python2中在sqlite3中插入中文

    # -*- coding: utf-8 -*- import sqlite3 conn = sqlite3.connect('SWC_Perf_Info.db') cur = conn.cursor( ...

随机推荐

  1. JS作用域理解(声明提升)

    1.JS解析步骤: a.预解析 将变量声明提升: 将函数声明及函数内容提升,可以理解成原来位置的函数在解析代码时已经提到代码初始位置: 块内的变量声明和函数声明也会被提升,例如if语句 遇到重名,只留 ...

  2. python excel 文件合并

    Combining Data From Multiple Excel Files Introduction A common task for python and pandas is to auto ...

  3. Ubuntu14.04 下安装Vmware-Tools

    1.切换到ubuntu 图形界面 startx , 点击虚拟机菜单栏-安装VMware Tools 2. 在Ubuntu系统中找到VMwareTools-9.2.2-893683.tar.gz ,右键 ...

  4. query.validate.js使用说明+中文API

    转自:http://www.cnblogs.com/hejunrex/archive/2011/11/17/2252193.html 看到一篇好的文章不容易,记录下来以防丢失! 官网地址:http:/ ...

  5. HDU 5792 World is Exploding (离散化+树状数组)

    题意:给定 n 个数,让你数出 a < b && c < d && a != b != c != d  && Aa < Ab & ...

  6. 特征工程 vs. 特征提取

    “特征工程”这个华丽的术语,它以尽可能容易地使模型达到良好性能的方式,来确保你的预测因子被编码到模型中.例如,如果你有一个日期字段作为一个预测因子,并且它在周末与平日的响应上有着很大的不同,那么以这种 ...

  7. POJ 2546 Circular Area(两个圆相交的面积)

    题目链接 题意 : 给你两个圆的半径和圆心,让你求两个圆相交的面积大小. 思路 : 分三种情况讨论 假设半径小的圆为c1,半径大的圆为c2. c1的半径r1,圆心坐标(x1,y1).c2的半径r2,圆 ...

  8. 一款基于uploadify扩展的多文件上传插件,完全适用于Html5

    http://www.uploadify.com/documentation/  官网里面有两个插件,一个是要使用flash插件才能文件上传的插件,另外一个是不需要使用要flash插件的文件上传插件完 ...

  9. 盒子模型 以及CSS的box-sizing属性。

    盒子模型有两种 一种是 内容盒子模型 一种是边框盒子模型. 内容盒子模型(标准盒子模型)由width和height中指定的元素的尺寸不包括内边距和边框 仅是指的内容的实际尺寸: 网上搜索了两张配图不错 ...

  10. 单例模式到Java内存模型

    先说单例模式: 经典的单例模式实现: 饿汉式: public class Singleton { private static Singleton instance = new Singleton() ...