• WinForm中从SQLite数据库获取数据显示到DataGridView


    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 = 0; i < mTables.Rows.Count; i++)
                    {
                        cboTables.Items.Add(mTables.Rows[i].ItemArray[mTables.Columns.IndexOf("TABLE_NAME")].ToString());
                    }
                    if (cboTables.Items.Count > 0)
                    {
                        cboTables.SelectedIndex = 0; // 默认选中第一张表.
                    }
                }
               
            }
    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;
            }
  • 相关阅读:
    ios7.0结合storyborad实现页面跳转的总结
    ios上取得设备唯一标志的解决方案
    【iOS】Objective-C简约而不简单的单例模式
    ios应用启动后的自动版本检测方式
    linux安装常用软件和查询基本信息
    配置本地yum仓库
    RedHat 6.5 上将系统语言修改为中文
    RedHat7.4配置yum网络源
    linux环境中,两个不同网段的机器互通
    redhat 配置eth0网卡
  • 原文地址:https://www.cnblogs.com/wq352/p/7418436.html
Copyright © 2020-2023  润新知