SQLite 的使用
private void button1_Click(object sender, EventArgs e)
{
//查询数据库内容并绑定
string sql= "select* from employee";
dataGridView1.DataSource = SqliteHelper.ExecuteDatatable(sql);
} private void button2_Click(object sender, EventArgs e)
{
//创建数据库
SQLiteConnection.CreateFile("sqlite.db"); //创建数据库文件
MessageBox.Show("创建成功");
} private void button3_Click(object sender, EventArgs e)
{
//创建表
string sql = "create table employee (name varchar(20), age int)";
SqliteHelper.ExecuteNonQuery(sql);
MessageBox.Show("创建成功");
} private void button4_Click(object sender, EventArgs e)
{
//插入数据记录
string sql = "insert into employee (name,age) values ('wuzhiyu',25)";
SqliteHelper.ExecuteNonQuery(sql); sql = "insert into employee (name,age) values ('Frank',50)";
SqliteHelper.ExecuteNonQuery(sql);
}
//需要System.Data.SQLite.dll 引用
sql 语句
--创建 公司表
CREATE TABLE [Company] (
[CompanyID] INTEGER PRIMARY KEY,--用户编号
[CompanyName] VARCHAR(50) NOT NULL,--公司名称
[Address] VARCHAR(200), --地址
[Tel] VARCHAR(11), --联系电话
[Memo] VARCHAR(200),--备注 [CreatTiem] datetime NOT NULL,--创建时间
[CreateName] VARCHAR(50) NOT NULL,--创建人
[ModifyTime] datetime,--修改时间
[ModifyName] VARCHAR(50)--修改人
); --创建 客户表
CREATE TABLE [Custom] (
[CustomID] INTEGER PRIMARY KEY, --客户编号
[CustomName] VARCHAR(50) NOT NULL, --客户名称
[Address] VARCHAR(200), --地址
[Tel] VARCHAR(11), --联系电话
[CompanyID] INTEGER NOT NULL, --公司ID
[Memo] VARCHAR(200), --备注 [CreatTiem] datetime NOT NULL,
[CreateName] VARCHAR(50)NOT NULL,
[ModifyTime] datetime,
[ModifyName] VARCHAR(50)
);
--创键 表格收据表
CREATE TABLE [ReceiptTable](
[ReceiptTableID] INTEGER PRIMARY KEY,--收据ID
[CompanyID] INTEGER NOT NULL, --公司ID
[Number] INTEGER NOT NULL, --票号
[CustomID] INTEGER NOT NULL, --客户编号
[CustomName] Varchar(50) NOT NULL,--客户名称
[Totle] NUMERIC(18,2) NOT NULL, --收费金额
[TotleWord] varchar(100) NOT NULL,--收费大写
[Memo] VARCHAR(200), --备注
[FeeTime] datetime NOT NULL,-- 收费时间
[Brokerage] Varchar(50) NOT NULL,--经手人
[Accounting] Varchar(50) NOT NULL,--会计
[Cashier] Varchar(50) NOT NULL,--出纳
[Status] Varchar(10) NOT NULL,--状态
[CancelTime] datetime, --作废日期
[CancelName] Varchar(50)--作废人
); --创建表格收据详情
Create table [Detail](
[DetailID] INTEGER PRIMARY KEY,--明细ID
[ReceiptTableID] INTEGER NOT NULL, --收据ID
[FeeID] INTEGER NOT NULL, --收费项ID
[FeeName] VARCHAR(200), --收费项名称
[Quantity] INTEGER NOT NULL, --数量
[Price] NUMERIC(18,2) NOT NULL, --单价
[Unit] Varchar(5) NOT NULL,--单位
[Total] NUMERIC(18,2) NOT NULL, --金额
[Memo] VARCHAR(200) --备注
);
--收费项目表
CREATE TABLE [Fee] (
[FeeID] INTEGER PRIMARY KEY,--项目编号
[FeeName] VARCHAR(50) NOT NULL,--收费项名称
[Unit] VARCHAR(5) ,--单位
[Price]NUMERIC(18,2) ,--单价
[CompanyID] INTEGER ,--用户编号
[CreatTime] Datetime NOT NULL,--创建时间
[CreateName] VARCHAR(50) NOT NULL,--创建人
[ModifyTime] Datetime,--修改时间
[ModifyName] VARCHAR(50)--修改人
);
--收据表
CREATE TABLE [Receipt] (
[ReceiptID] INTEGER PRIMARY KEY,--收据ID
[CompanyID] INTEGER,--公司ID
[Number] INTEGER NOT NULL,--票号
[CustomID] INTEGER NOT NULL,--客户编号
[CustomName] VARCHAR(50) NOT NULL,--客户名称
[FeeID] VARCHAR(50) NOT NULL,--收费项
[FeeName]VARCHAR(200)NOT NULL,--收费项名称
[Total] NUMERIC(18,2) NOT NULL,--收费金额
[TotalWord]VARCHAR(100) NOT NULL,--金额大写
[Memo] VARCHAR(200) ,--备注
[FeeTime] Datetime NOT NULL,--收费日期
[Brokerage] VARCHAR(50) NOT NULL,--经手人
[Accounting] VARCHAR(50) NOT NULL,--会计
[Status] VARCHAR(10) NOT NULL,--出纳
[CancelTime] datetime,--作废日期
[CancelName] VARCHAR(50) --作废人
);
--日志表
CREATE TABLE [Log] (
[LogID] INTEGER PRIMARY KEY,--日志编号
[CompanyID] int NOT NULL,--公司编号
[LogInfo] VARCHAR(200) NOT NULL,--日志信号
[LogTime] datetime NOT NULL,--日志时间
[CreateName]VARCHAR(50) NOT NULL --创建人名称
);
--异常信息表
CREATE TABLE [ExceptionInfo] (
[ID] INTEGER PRIMARY KEY,--信息编号
[Message] VARCHAR(200) NOT NULL,--异常信息
[Time] Datetime NOT NULL,--异常时间
[Status] Varchar(10) NOT NULL --是否处理
);
SQLite 的使用的更多相关文章
- 【开源】分享2011-2015年全国城市历史天气数据库【Sqlite+C#访问程序】
由于个人研究需要,需要采集天气历史数据,前一篇文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),介绍了基本的采集思路和核心代码,经过1个星期的采集,历史数据库 ...
- UWP开发之ORM实践:如何使用Entity Framework Core做SQLite数据持久层?
选择SQLite的理由 在做UWP开发的时候我们首选的本地数据库一般都是Sqlite,我以前也不知道为啥?后来仔细研究了一下也是有原因的: 1,微软做的UWP应用大部分也是用Sqlite.或者说是微软 ...
- 深入解析Sqlite的完美替代者,android数据库新王者——Realm
写在前面: 又到一年一度七夕虐狗节,看着大家忍受着各种朋友圈和QQ空间还有现实生活中的轮番轰炸,我实在不忍心再在这里给大家补刀,所以我觉得今天不虐狗,继续给大家分享有用的. 如果你比较关心androi ...
- VS15 preview 5打开文件夹自动生成slnx.VC.db SQLite库疑惑?求解答
用VS15 preview 5打开文件夹(详情查看博客http://www.cnblogs.com/zsy/p/5962242.html中配置),文件夹下多一个slnx.VC.db文件,如下图: 本文 ...
- Android之SQLite数据存储
一.SQLite保存数据介绍 将数据库保存在数据库对于重复或者结构化数据(比如契约信息)而言是理想之选.SQL数据库的主要原则之一是架构:数据库如何组织正式声明.架构体现于用于创建数据库的SQL语句. ...
- 【教程】SQLite数据库修复
SQLite 大家都知道,就不多说了. 有时候数据量大了,或者存储过程中出现异常,数据库就可能会出问题. 这是以前公司产品出现过的问题,导致软件都打不开了,我花了不少时间才解决的,趁现在有空贡献出来. ...
- SQLite学习笔记(十)&&加密
随着移动互联网的发展,手机使用越来越广泛,sqlite作为手机端存储的一种解决方案,使用也非常普遍.但是sqlite本身安全特性却比较弱,比如不支持用户权限,只要能获取到数据库文件就能进行访问:另外也 ...
- mono for android中使用dapper或petapoco对sqlite进行数据操作
在mono for android中使用dapper或petapoco,很简单,新建android 类库项目,直接把原来的文件复制过来,对Connection连接报错部分进行注释和修改就可以运行了.( ...
- 【腾讯Bugly干货分享】微信iOS SQLite源码优化实践
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57b58022433221be01499480 作者:张三华 前言 随着微信iO ...
- 【腾讯Bugly干货分享】移动客户端中高效使用SQLite
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57b57f2a0703f7d31b9a3932 作者:赵丰 导语 iOS 程序能 ...
随机推荐
- 可拖动的div——demo
可拖动的div——demo 我们经常会遇到这样的注册界面 我们以前经常可以遇到这种需要注册的网站,如上图: 上图有一个特点,即是上述注册框其实是一个div,同时可以拖动,以下做一个简单的实例,就可以实 ...
- 记一个简单的webpack.config.js
module.exports = { entry: './basic/app.js', output: { path: './assets/', filename: '[name].bundle.js ...
- Delphi春天将来临,Android遇到XE7我也是醉了,Hello World
回首往日,从Delphi 7走到如今.总感觉不愠不火.期间论坛倒掉无数,没倒掉的也半死不活,大批的程序猿转向C#,Java,PHP. Delphi的开发高效有目共睹,一直不忍放弃.Delphi以前一夜 ...
- iOS开发一行代码系列:一行搞定数据库
原理 iOS 和 SQL的相应关系 Model类结构 => SQL表结构 Model实例 => SQL表中的一行 Model实例的属性 => S ...
- SQL LEN() 函数 ,case when,聚合函数的使用方法
SELECT aa.[User_Id],cc.[User_Name],dd.Name AS DepName,aa.Module_Id,aa.Module_Name, SUM(CASE aa.Opera ...
- ORACLE-017:SQL优化-is not null和nvl
今天在优化一段sql,原脚本大致例如以下: select a.字段n from tab_a a where a.字段2 is not null; a.字段2添加了索引的,可是查询速度很慢. 于是做了例 ...
- 一个简单的JS日期挂历脚本
分享一个JS脚本做的日期挂历,在需要的时候可以引入你的程序. 如需单独引入这个脚本,请将它保存在一个文件中然后引入它:如这样 <script type="text/javascript ...
- bzoj3110 [Zjoi2013]K大数查询——线段树套线段树
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3110 外层权值线段树套内层区间线段树: 之所以外层权值内层区间,是因为区间线段树需要标记下传 ...
- c++ string 解析ip
比如输入是192.168.80.12-15,解析成192.168.80.12.192.168.80.13.192.168.80.14.192.168.80.15. #include <iostr ...
- 两个向量的outer product
#include <functional> template <class T1, class T2, class T3>void outer_product(std::vec ...