.net core : 做一个最简单的 sqlite 操作 demo

事先声明几点:

1. 使用 VS2017, 以前的版本大多老旧, 不想折腾就直接上 VS2017吧;

2. VS2017 在安装时必须选择 .net core 相关组件, 否则也没办法;

3. 以前的那个System.Data.sqlite 没法在 .net core 下用了。

言归正传:

一、新建项目:


二、在“程序包管理器控制台”下输入:

install-package Microsoft.EntityFrameworkCore.sqlite.Core

install-package sqlitePCLRaw.bundle_green


三、正式的代码

using Microsoft.Data.sqlite;
using System;
using System.Data;

namespace ConsoleApp7
{
    class Program
    {
        static void Main(string[] args)
        {
            string connString = "Data Source=dapperTest.db";
            string sql =
@"drop table if exists userInfo;
create table userInfo(
    userInfo int primary key,userName nvarchar(50)
);
insert into userInfo values(1,'小明');
insert into userInfo values(2,'小红');
";
            string sql2 = "select * from userInfo";

            try
            {
                using (sqliteConnection conn = new sqliteConnection(connString))
                {
                    conn.open();
                    sqliteCommand cmd = new sqliteCommand(sql,conn);
                    cmd.ExecuteNonQuery();

                    cmd.CommandText = sql2;
                    sqliteDataReader dr = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        Console.WriteLine("UserId:{0}\tUserName:{1}",dr[0],dr[1]);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.WriteLine("End.");
            Console.Read();
        }
    }
}

是不是很简单?

其实也绕了不少弯子, 主要是包的引用都是自己想办法试出来的, 目前的资料还是比较少。

另外, 返回的值, sqlite 中定义为 int 的, 返回值却是 long 等待, 不一定能完全对应上。

如果你手工给对象赋值, 可能没有什么问题, 但如果用反射就得注意了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NET的相关概念,这主要包括:CLS、...
基于 .NET 的一个全新的、好用的 PHP SDK + Runtime: PeachPie 来啦!
.NET 异步工作原理介绍。
引子 .NET 6 开始初步引入 PGO。PGO 即 Profile Guided Optimization,通过收集运行时信息来指导 JIT 如何优化代码,相比以前没有 PGO 时可以做更多以前难以
前言 2021/4/8 .NET 6 Preview 3 发布,这个版本的改进大多来自于底层,一起来看看都有什么新特性和改进吧。 库改进 新增值类型作为字典值时更快的处理方法 .NET 6 Previ
前言 开头防杠:.NET 的基础库、语言、运行时团队从来都是相互独立各自更新的,.NET 6 在基础库、运行时上同样做了非常多的改进,不过本文仅仅介绍语言部分。 距离上次介绍 C# 10 的特性已经有
直接使用 CIL - .NET 上的汇编语言编写 .NET Standard 类库
前言 不知不觉中,.NET Framework 已经更新到 4.8,.NET Core 也更新到了 3.0 版本。那么 .NET 的未来怎么样呢? 计划 2019 年 Build 大会上,微软宣布下一
本文带你穿越到未来一起看看未来的 C# 到底长什么样子。
前言 TypedocConverter 是我先前因帮助维护 monaco-editor-uwp 但苦于 monaco editor 的 API 实在太多,手写 C# 的类型绑定十分不划算而发起的一个项
前言 在 2021 年 3 月 11 日, .NET 6 Preview 2 发布,这次的改进主要涉及到 MAUI、新的基础库和运行时、JIT 改进。 .NET 6 正式版将会在 2021 年 11
前言 命名空间已经在 .NET 中使用了多年,一直追溯到 .NET Framework 1.1。它在 .NET 实施本身的数百个位置中使用,并且直接被成千上万个应用程序使用。在所有这些方面,它也是 C
.NET 上的统一跨平台 UI 框架来啦
使用 F# 手写一个 Typedoc 转 C# 代码生成器,方便一切 C# 项目对 TypeScript 项目的封装。
LINQ + SelectMany = Monad!
C# 10 主要特性一览
C# 的编译期反射终于来啦!
前言 2021 年 2 月 17 日微软发布了 .NET 6 的 Preview 1 版本,那么来看看都有什么新特性和改进吧,由于内容太多了因此只介绍一些较为重点的项目。ASP.NET Core 6
前言 有一个东西叫做鸭子类型,所谓鸭子类型就是,只要一个东西表现得像鸭子那么就能推出这玩意就是鸭子。 C 里面其实也暗藏了很多类似鸭子类型的东西,但是很多开发者并不知道,因此也就没法好好利用这些东西,
经过五年半的持续维护,Senparc.Weixin SDK 逐步丰满和完善,在升级的过程中,我们为基础库(Senparc.Weixin.dll)加入了许多通用的功能,例如加密/解密算法、通用缓存方法等