加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 19:14:41 所属栏目:百科 来源:网络整理
导读:事先声明几点: 1. 使用 VS2017, 以前的版本大多老旧, 不想折腾就直接上 VS2017吧; 2. VS2017 在安装时必须选择 .net core 相关组件, 否则也没办法; 3. 以前的那个System.Data.SQLite 没法在 .net core 下用了。 言归正传: 一、新建项目: 二、在“程序

事先声明几点:

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 等待, 不一定能完全对应上。

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读