SQLite C# 用法

1,下载官方的DLL文件 System.Data.SQLite.dll

?

2,修改微软官方的SqlHelper,打造SQLiteHelper,改造方法很简单,批量替换方式

SqlConnection=》SQLiteConnection

SqlCommand=》SQLiteCommand

SqlParameter=》SQLiteParameter

SqlDataReader=》SQLiteDataReader

SqlTransaction=》SQLiteTransaction

网上的SQLite helper 改造的烂七八糟,我们需要纯净版。

?

SQLiteHelper DB路径

public static readonly string ConnectionString = string.Format("DataSource={0}", Application.StartupPath + "/fulu");

?

3, SQLite工具 sqlite database browser(个人感觉比sqlite expert 好用),主要作用是创建数据库,创建表,把SQL 语句复制进去,运行的时候会自动转成sqlite 语句。

?

4,操作类(和SQL一模一样)

public class OrderManage

{

public void add(long tid, string status, string seller_nick, string buyer_nick, DateTime created, DateTime pay_time, long num_iid, string title, int num, decimal price, decimal payment, string receiver_address)

{

string sql = "insert into TradeOrder(tid,status,seller_nick,buyer_nick,created,pay_time,num_iid,title,num,price,payment,receiver_address) values(@tid,@status,@seller_nick,@buyer_nick,@created,@pay_time,@num_iid,@title,@num,@price,@payment,@receiver_address)";

SQLiteParameter[] parms =

{

new SQLiteParameter("@tid",tid),

new SQLiteParameter("@status",status),

new SQLiteParameter("@seller_nick",seller_nick),

new SQLiteParameter("@buyer_nick",buyer_nick),

new SQLiteParameter("@created",created),

new SQLiteParameter("@pay_time",pay_time),

new SQLiteParameter("@num_iid",num_iid),

new SQLiteParameter("@title",title),

new SQLiteParameter("@num",num),

new SQLiteParameter("@price",price),

new SQLiteParameter("@payment",payment),

new SQLiteParameter("@receiver_address",receiver_address)

};

int r = SQLiteHelper.ExecuteNonQuery(SQLiteHelper.ConnectionString, CommandType.Text, sql, parms);

}

?

public void update(long tid, string status, DateTime end_time)

{

string sql = "update TradeOrder set [email protected],[email protected]_time where [email protected]";

SQLiteParameter[] parms =

{

new SQLiteParameter("@tid",tid),

new SQLiteParameter("@status",status),

new SQLiteParameter("@end_time",end_time)

};

int r = SQLiteHelper.ExecuteNonQuery(SQLiteHelper.ConnectionString, CommandType.Text, sql, parms);

}

?

public void delete(long tid)

{

string sql = "delete from TradeOrder where [email protected]";

SQLiteParameter[] parms =

{

new SQLiteParameter("@tid",tid)

};

int r = SQLiteHelper.ExecuteNonQuery(SQLiteHelper.ConnectionString, CommandType.Text, sql, parms);

}

?

public DataTable select(long tid)

{

string sql = "select * from TradeOrder where [email protected]";

SQLiteParameter[] parms =

{

new SQLiteParameter("@tid",tid)

};

DataSet ds = SQLiteHelper.ExecuteDataset(SQLiteHelper.ConnectionString, CommandType.Text, sql, parms);

return ds.Tables[0];

}

?

public string select2(long tid)

{

string sql = "select status from TradeOrder where [email protected]";

SQLiteParameter[] parms =

{

new SQLiteParameter("@tid",tid)

};

object obj = SQLiteHelper.ExecuteScalar(SQLiteHelper.ConnectionString, CommandType.Text, sql, parms);

if (obj != null)

{

return obj.ToString();

}

return "";

}

?

public void select3(DateTime created, ref List<TradeOrder> orders)

{

string sql = "select * from TradeOrder where created>@created";

SQLiteParameter[] parms =

{

new SQLiteParameter("@created",created)

};

using (SQLiteDataReader dr = SQLiteHelper.ExecuteReader(SQLiteHelper.ConnectionString, CommandType.Text, sql, parms))

{

while (dr.Read())

{

TradeOrder order = new TradeOrder();

order.tid = long.Parse(dr["tid"].ToString());

order.status = dr["status"].ToString();

order.seller_nick = dr["seller_nick"].ToString();

order.buyer_nick = dr["buyer_nick"].ToString();

order.seller_nick = dr["seller_nick"].ToString();

order.created = string.IsNullOrEmpty(dr["created"].ToString()) ? DateTime.MinValue : DateTime.Parse(dr["created"].ToString());

order.pay_time = dr["pay_time"] == null ? DateTime.MinValue : DateTime.Parse(dr["pay_time"].ToString());

order.end_time = string.IsNullOrEmpty(dr["end_time"].ToString()) ? DateTime.MinValue : DateTime.Parse(dr["end_time"].ToString());

order.num_iid = long.Parse(dr["num_iid"].ToString());

order.num = int.Parse(dr["num"].ToString());

order.price = decimal.Parse(dr["price"].ToString());

order.payment = decimal.Parse(dr["payment"].ToString());

order.receiver_address = dr["receiver_address"].ToString();

orders.Add(order);

}

}

}

}

?

5,业务逻辑测试

OrderManage orderMng = new OrderManage();

//add

long tid = new Random().Next(1, 100);

orderMng.add(tid, "未处理", "一福二碌", "top15from", DateTime.Now, DateTime.Now, long.Parse("15"), "CF", 1, decimal.Parse("0.95"), decimal.Parse("0.95"), "不需要收获地址");

tid = new Random().Next(1, 100);

orderMng.add(tid, "未处理", "一福二碌", "top20from", DateTime.Now, DateTime.Now, long.Parse("20"), "DNF", 2, decimal.Parse("0.95"), decimal.Parse("1.9"), "不需要收获地址");

?

//select1

DataTable dt = orderMng.select(tid);

?

//update

orderMng.update(tid, "完成", DateTime.Now);

?

//select2

string status = orderMng.select2(tid);

?

//delete

orderMng.delete(tid);

?

//select3

List<TradeOrder> orders = new List<TradeOrder>();

orderMng.select3(DateTime.Now.AddHours(-1), ref orders);

时间: 2024-10-11 10:07:58

SQLite C# 用法的相关文章

SQLite基本用法

1.MainActivity.java import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.Menu; import android.view.View; import

Android 操作SQLite基本用法

在Android开发中SQLite起着很重要的作用,网上SQLite的教程有很多很多,不过那些教程大多数都讲得不是很全面.本人总结了一些SQLite的常用的方法,借着论坛的大赛,跟大家分享分享的. 一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入  式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持 Windows/Linux/Unix等等

sqlite query用法

本文转自http://blog.csdn.net/double2hao/article/details/50281273,在此感谢作者 首先我们假设我们有如下表格,表格名称“Employees”: Id LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Thomas Changan Street Beijing SQL基本格式

Android SQLite基本用法

SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小. 2.独立性 SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”. 3.隔离性 SQLite 数据库中所有的信息(比如表.视图.触发器等)都包含在一个文件夹内,方便管理和维护. 4.跨平台 SQLit

学习SQLite之路(五) C/C++ SQLite开发实例

介绍一种乌班图中使用sqlite的用法,非常简单,下面的例子是在乌班图12.04中实现的: 1,先安装两个东西: sudo apt-get install sqlite sqlite3 sudo apt-get install libsqlite3-dev  // 不然可能会报 没有头文件 sqlite3.h 2,C/C++接口:一般用到下面这三个,详情请参考sqlite官方文档. (1)sqlite3_open(const char *filename, sqlite3 **ppDb): 打开

【Android】13.0 第13章 创建和访问SQLite数据库&mdash;本章示例主界面

分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 Android 内置了三种数据存取方式:SQLite数据库.文件.SharedPreferences. 这一章我们主要学习如何使用SQLite数据库存取数据. 1.SQLite是个什么档次的数据库 SQLite是一种免费的.开源的数据库,由于它独特的设计(把各种数据类型都转换为它自己内部处理的5种类型)导致其占用内存极少,因此很多项目都喜欢使用它. Android集成了SQLite并内置了专门对SQLite操作

13.3 使用SQLite.NET-PCL访问SQLite数据库

分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 本章开头已经说过了,SQLite.NET-PCL用起来很爽,这一节咱们看看怎样使用吧. 二.示例3运行截图 下面左图是单击[初始化表数据]后的结果,右图是单击[获取所有记录]后的结果.    下面左图是单击[添加新行]后的界面,右图是添加后重新获取的所有记录:    修改.删除.查找不再截图了,有兴趣自己玩吧. 三.主要设计步骤 1.添加SQLite.NET-PCL程序包 通过NuGet直接添加即可. 2.创建

13.4 使用SQLite.NET.Async-PCL访问SQLite数据库

分类:C#.Android.VS2015: 创建日期:2016-02-27 一.简介 这一节演示如何利用以异步方式(async.await)访问SQLite数据库. 二.示例4运行截图 下面左图为初始页面,右图为单击[创建数据库]按钮后的结果.   下面左图为单击[添加单行]按钮的结果,右图为单击[添加多行]按钮的结果.   注意:不想再像上一节的例子那样逐个添加页面了,毕竟例子的目的仅仅是为了演示最基本的异步操作用法,代码太多容易冲淡要关注的内容,所以该例子并没有去解决重复添加相同学号的记录引

第一个Android DemoChat(伪即使通讯)

</pre> 学习Android到现在估计应该还不到一个月的时间,我很激动能够在自己的努力还有奋斗下开发一个自己想要的App,虽然这个App的功能还不够完善,界面很丑陋,Bug很存在很多,但是我觉得这个起码是我自己动用智慧开发的第一个App,所以我要在这里将我开发的思路还有一个想法写在这里.<span class="token lf" style="color:rgb(52,52,52); font-family:'Source Code Pro',mono