1.关于Sqlite  

  Sqlite是一款开源的、适合在客户端和嵌入式设备中使用的轻量级数据库,支持标准的SQL。

  不像SqlServer或Oracle的引擎是一个独立的进程、通过TCP或命名管道等与程序进行通信,SQLite却是作为程序的一个部件、一个构成部分,使用Sqlite的方式就是直接在程序中进行API调用。

2.Sqlite资源链接

       Sqlite官网:可以从官网下载源码、或下载已经编译好的二进制版本。支持的系统包括:Linux、MacOS、Windows、.NET。

3.在.NET中使用Sqlite

  从官网下载.NET版本的Sqlite,其主要包括两个dll:SQLite.Interop.dll、System.Data.SQLite.dll。

(1)System.Data.SQLite.dll是一个标准的托管dll,我们可以直接在.NET项目中引用并使用它,就像使用.NET自带的System.Data命名空间中的各个对象一样。

(2)SQLite.Interop.dll是一个非托管的dll,是Sqlite引擎核心,我们需要将其拷贝到运行目录下,在运行时,它会被System.Data.SQLite.dll调用。
 

4.Winform中使用SQLite

(1)可使用northwindEF.db测试数据库,也可以新建一个数据库。
(2)Winform界面:

使用ComboBox:cboTables加载数据库表。

点击OK,查询选择的表中的详细信息显示到DataGridView:grdDetail。
 
(3)代码说明
Step 1. 添加引用System.Data.SQLite. 注意需要复制SQLite.Interop.dll至运行目录下;
Step 2. 定义变量
public partial class Form1 : Form
{
SQLiteConnection mConn;
SQLiteDataAdapter mAdapter;
DataTable mTable;
public Form1()
{
InitializeComponent();
}
}

Step 3. 连接数据库,并查找数据库中表显示到cboTables

private void Form1_Load(object sender, EventArgs e)
{
//连接数据库.
string mDbPath = Application.StartupPath + "/northwind.db";
//如果数据库不存在,则自动创建.
mConn = new SQLiteConnection("Data Source=" + mDbPath); //打开数据库文件.
mConn.Open(); //创建表[Test Table].
// id - Unique Counter - Key Field (Required in any table)
// FirstName - Text
// Age - Integer
using (SQLiteCommand mCmd = new SQLiteCommand
("CREATE TABLE IF NOT EXISTS [Test Table] " +
"(id INTEGER PRIMARY KEY AUTOINCREMENT, 'FirstName' TEXT, 'Age' INTEGER);",
mConn))
{
mCmd.ExecuteNonQuery();
} //获取数据库中表.
//表 "Tables"中字段 "TABLE_NAME" 包含所有表名信息.
using (DataTable mTables = mConn.GetSchema("Tables")) // "Tables"包含系统表详细信息;
{
for (int i = ; i < mTables.Rows.Count; i++)
{
cboTables.Items.Add(mTables.Rows[i].ItemArray[mTables.Columns.IndexOf("TABLE_NAME")].ToString());
}
if (cboTables.Items.Count > )
{
cboTables.SelectedIndex = ; // 默认选中第一张表.
}
} }
Step 4. 选择cboTables中表名,点击Ok,获取该表详细信息显示到grdDetail中。

private void btnOk_Click(object sender, EventArgs e)
{
mAdapter = new SQLiteDataAdapter("SELECT * FROM [" + cboTables.Text + "]", mConn);
mTable = new DataTable(); // Don't forget initialize!
mAdapter.Fill(mTable); // 绑定数据到DataGridView
grdDetail.DataSource = mTable;
}

WinForm中从SQLite数据库获取数据显示到DataGridView的更多相关文章

  1. android中与SQLite数据库相关的类

    为什么要在应用程序中使用数据库?数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆 ...

  2. 在Android 开发中使用 SQLite 数据库笔记

    SQLite 介绍   SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PH ...

  3. 在 Android 应用程序中使用 SQLite 数据库以及怎么用

    part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...

  4. Android虚拟机中的sqlite数据库文件

    Android虚拟机中的sqlite数据库文件 ①

  5. 在项目中使用SQLite数据库小结

    ------------------------------------------------------------------------推荐: - VS2012 使用 1.0.84 版的库 - ...

  6. 2014-08-01 ASP.NET中对SQLite数据库的操作——ADO.NET

    今天是在吾索实习的第18天.我主要学习了如何在ASP.NET中对SQLite数据库的操作,其基本操作如下: 添加引用System.Data.SQLite.dll(PS:在网页里面任意找到适合的.NET ...

  7. Go语言中使用SQLite数据库

    Go语言中使用SQLite数据库 1.驱动 Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接口的 https://github.com/mattn/go-sqlite3 ...

  8. Winform中怎样跨窗体获取另一窗体的控件对象

    场景 Winform中实现跨窗体获取ZedGraph的ZedGraphControl控件对象: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/de ...

  9. 【Win10】在应用中使用 SQLite 数据库

    在绝大多数应用中,免不了要做的一项就是设置这样的本地数据存储.简单的数据存储我们可以使用 LocalSettings 或者 IsolatedStorageFile(独立存储)等等的方式来进行本地数据存 ...

随机推荐

  1. 优化方法:SGD,Momentum,AdaGrad,RMSProp,Adam

    参考: https://blog.csdn.net/u010089444/article/details/76725843 1. SGD Batch Gradient Descent 在每一轮的训练过 ...

  2. Pat乙级1011题:A+B和C

    题目:给定区间[-2的31次方, 2的31次方]内的3个整数A.B和C,请判断A+B是否大于C. 我写的代码: del abc(self,a,b,c,i): if a+b>c: print(&q ...

  3. 解决:在pom.xml处理添加testng依赖之外,需对testng进行关联

    问题描述:当maven项目中下载了testng包,在调用后,执行maven test,未执行testng.xml中指定的测试类. 解决:在pom.xml处理添加testng依赖之外,需对testng进 ...

  4. PAT乙级1014

    1014 福尔摩斯的约会 (20 分)   大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d& ...

  5. 1548: Design road (思维题 做法:三分找极值)

    1548: Design road Submit Page    Summary    Time Limit: 2 Sec     Memory Limit: 256 Mb     Submitted ...

  6. 【LeetCode371】 Sum of Two Integers

    题目描述: 解题思路: 此题是要在不用操作符+和-的情况下,求两个整数的和.既然不能用内置的加减法,那就只能用位运算(&, |, ~, ^). (1)异或(xor):异或的数学符号为“⊕”,计 ...

  7. canvas 绘制刮刮卡

    思路=> 用div来展示刮奖结果,用canvas绘制刮奖前展示的图片或者文字:将canvas叠在div上方,刮奖是只需要操作canvas配合touch事件即可简单完成. canvas刮奖可以用g ...

  8. HBase基础概念

    定义 非关系型分布式列式数据库,支持大数据量查询(百万,上亿行) 概要 数据存储:HDFS 数据计算:MapReduce/Spark 服务协调:Zookeeper 特征 列式存储(列只有一种类型byt ...

  9. Java基础——常用类之日期时间类

    如果有机会,请尝试Java8中全新的时间日期API!(参见Java8新特性随笔) 如果还是使用Java7及之前的版本,那么你可以尝试一些工具类(参考使用工具类相关的Hutool-DateUtil) 如 ...

  10. JavaWeb基础—VerifyCode源码

    package com.jiangbei.verifycodeutils; import java.awt.BasicStroke; import java.awt.Color; import jav ...