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

SQLite在.net的应用

发布时间:2020-12-12 20:02:29 所属栏目:百科 来源:网络整理
导读:IDE: VS2005 语言: C# 组件:sqlite-netFx20-setup-bundle-x86-2005-1.0.92.0 简介: 本示例使用SQLite的密码、外键功能。以及关闭临时文件(journal mode=Off)。 通过查询和插入(修改、删除)来演示C#使用SQLite的实用性。 一、设计窗体 拖拽2个TextBox、2

IDE: VS2005

语言: C#

组件:sqlite-netFx20-setup-bundle-x86-2005-1.0.92.0


简介:

本示例使用SQLite的密码、外键功能。以及关闭临时文件(journal mode=Off)。

通过查询和插入(修改、删除)来演示C#使用SQLite的实用性。


一、设计窗体

拖拽2个TextBox、2个Button、1个DataGridView、1个SQLiteConnection、1个SQLiteCommand



设置SQLiteCommand的Connection属性为SQLiteConnection



完整的窗体:



二、功能实现

1. 查询

(1)设置数据桥

           dataAdapter = new SQLiteDataAdapter(sqLiteCommand1);

(2)设置缓存器
cmdBuilder = new SQLiteCommandBuilder(dataAdapter);

(3)建立数据表
table = new DataTable(tblName);

(4)连接数据表
dataAdapter.Fill(table);

(5)指定数据源
dataGridView1.DataSource = table;

为了定位表的名称,我们使用查找特定的关键字:from。
int iPos = statementStr.LastIndexOf("from") + 5;

            String tblName = statementStr.Substring(iPos,(statementStr.Length - 1) - iPos);


2. 插入

按照行来分解Insert语句;也可以执行Update、Delete等语句。

            int i = edtStmt.Lines.Length;
            for (int j = 0; j < i; j++)
            {
                String strSta = edtStmt.Lines[j].ToString();
                sqLiteCommand1.CommandText = strSta;
                sqLiteCommand1.ExecuteNonQuery();
            }


三、源代码

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SQLite;

namespace testSQLite
{
    public partial class Form1 : Form
    {
        private DataTable table;
        private SQLiteDataAdapter dataAdapter;
        private SQLiteCommandBuilder cmdBuilder;
        private String strFmt,connStr;
        private String currDir;

        public Form1()
        {
            InitializeComponent();

            currDir = Directory.GetCurrentDirectory();
            strFmt = "data source="" + currDir + "/{0}""
                    + ";page size=32768;"
                    + "cache size=0;"
                    + "Password=20130321;"
                    + "foreign keys=True;"
                    + "journal mode=Off";
        }

        private void btnExec_Click(object sender,EventArgs e)
        {
            if (edtStmt.Text.ToLower().IndexOf("insert") < 0) return;

            connStr = string.Format(strFmt,edtDB.Text);
            //
            sqLiteConnection1.Close();
            sqLiteConnection1.ConnectionString = connStr;
            sqLiteConnection1.Open();

            int i = edtStmt.Lines.Length;
            for (int j = 0; j < i; j++)
            {
                String strSta = edtStmt.Lines[j].ToString();
                sqLiteCommand1.CommandText = strSta;
                sqLiteCommand1.ExecuteNonQuery();
            }
            MessageBox.Show("Insert Done");
        }

        private void btnSearch_Click(object sender,EventArgs e)
        {
            if (edtStmt.Text.IndexOf(";") < 0)
            {
                MessageBox.Show("Please enter a SQL statement terminator - ';'");
                return;
            }
            connStr = string.Format(strFmt,edtDB.Text);


            String statementStr = edtStmt.Text.ToLower();

            int iPos = statementStr.LastIndexOf("from") + 5;

            String tblName = statementStr.Substring(iPos,(statementStr.Length - 1) - iPos);

            sqLiteConnection1.Close();
            sqLiteConnection1.ConnectionString = connStr;
            sqLiteConnection1.Open();

            sqLiteCommand1.CommandText = edtStmt.Text;
            dataAdapter = new SQLiteDataAdapter(sqLiteCommand1);
            cmdBuilder = new SQLiteCommandBuilder(dataAdapter);

            table = new DataTable(tblName);
            dataAdapter.Fill(table);

            dataGridView1.DataSource = table;
        }
    }
}



参考文档:

SQLite.NET.chm

(编辑:李大同)

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

    推荐文章
      热点阅读