亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > SQLite > 正文

Sqlite 操作類代碼

2020-01-31 15:12:44
字體:
供稿:網(wǎng)友
1. ADO.NET Provider For SQLite.
  ADO.NET 提供程序是香港(貌似)一個公司提供的.項(xiàng)目地址見:http://sourceforge.net/projects/sqlite-dotnet2
  2. 對SQLite.NET的封裝,提供一個簡單的操作幫助類.
SQLiteHelper
復(fù)制代碼 代碼如下:

/**//**
* SQLite操作的幫助類.
*
* Author: egmkang.wang
* Date: 2009-06-21
*/
namespace System.Data.SQLite
{
using System.Data;
using System.Data.SQLite;
using System.IO;
public class SqliteHelper
{
private static string pwd = "PWD";
private static string path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "http://sqliteTest.db";
private static string connString = string.Format("Data Source =/"{0}/"", path, pwd);
/**//// <summary>
/// 返回?cái)?shù)據(jù)庫鏈接字符串
/// </summary>
public static string ConnString
{
get { return connString; }
}
/**//// <summary>
/// 執(zhí)行SQL語句,返回受影響的行數(shù)
/// </summary>
/// <param name="cmdText">需要被執(zhí)行的SQL語句</param>
/// <returns>受影響的行數(shù)</returns>
public static int ExecuteNonQuery(string cmdText)
{
return ExecuteNonQuery(ConnString, cmdText);
}
/**//// <summary>
/// 執(zhí)行帶有事務(wù)的SQL語句
/// </summary>
/// <param name="trans">事務(wù)</param>
/// <param name="cmdText">SQL語句</param>
/// <returns>受影響的行數(shù)</returns>
public static int ExecuteNonQuery(SQLiteTransaction trans, string cmdText, params SQLiteParameter[] parameters)
{
int val = 0;
using (SQLiteCommand cmd = new SQLiteCommand())
{
PrepareCommand(cmd, (SQLiteConnection)trans.Connection, trans, cmdText, parameters);
val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
return val;
}
/**//// <summary>
/// 執(zhí)行SQL語句,返回受影響的行數(shù)
/// </summary>
/// <param name="connString">連接字符串</param>
/// <param name="cmdText">SQL語句</param>
/// <param name="parameters">SQL的參數(shù)</param>
/// <returns>受影響的行數(shù)</returns>
public static int ExecuteNonQuery(string connString, string cmdText, params SQLiteParameter[] parameters)
{
using (SQLiteConnection conn = new SQLiteConnection(connString))
{
return ExecuteNonQuery(conn, cmdText, parameters);
}
}
/**//// <summary>
/// 執(zhí)行SQL語句,返回受影響的行數(shù)
/// </summary>
/// <param name="connection">數(shù)據(jù)庫鏈接</param>
/// <param name="cmdText">SQL語句</param>
/// <param name="parameters">參數(shù)</param>
/// <returns>受影響的行數(shù)</returns>
public static int ExecuteNonQuery(SQLiteConnection connection, string cmdText, params SQLiteParameter[] parameters)
{
int val = 0;
using (SQLiteCommand cmd = new SQLiteCommand())
{
PrepareCommand(cmd, connection, null, cmdText, parameters);
val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
return val;
}
/**//// <summary>
/// 執(zhí)行查詢,并返回結(jié)果集的第一行的第一列.其他所有的行和列被忽略.
/// </summary>
/// <param name="cmdText">SQL 語句</param>
/// <returns>第一行的第一列的值</returns>
public static object ExecuteScalar(string cmdText)
{
return ExecuteScalar(ConnString, cmdText);
}
/**//// <summary>
/// 執(zhí)行查詢,并返回結(jié)果集的第一行的第一列.其他所有的行和列被忽略.
/// </summary>
/// <param name="connString">連接字符串</param>
/// <param name="cmdText">SQL 語句</param>
/// <returns>第一行的第一列的值</returns>
public static object ExecuteScalar(string connString, string cmdText)
{
using (SQLiteConnection conn = new SQLiteConnection(connString))
{
return ExecuteScalar(conn, cmdText);
}
}
/**//// <summary>
/// 執(zhí)行查詢,并返回結(jié)果集的第一行的第一列.其他所有的行和列被忽略.
/// </summary>
/// <param name="connection">數(shù)據(jù)庫鏈接</param>
/// <param name="cmdText">SQL 語句</param>
/// <returns>第一行的第一列的值</returns>
public static object ExecuteScalar(SQLiteConnection connection, string cmdText)
{
object val;
using (SQLiteCommand cmd = new SQLiteCommand())
{
PrepareCommand(cmd, connection, null, cmdText);
val = cmd.ExecuteScalar();
}
return val;
}
/**//// <summary>
/// 執(zhí)行SQL語句,返回結(jié)果集的DataReader
/// </summary>
/// <param name="cmdText">SQL語句</param>
/// <param name="parameters">參數(shù)</param>
/// <returns>結(jié)果集的DataReader</returns>
public static SQLiteDataReader ExecuteReader(string cmdText, params SQLiteParameter[] parameters)
{
return ExecuteReader(ConnString, cmdText, parameters);
}
/**//// <summary>
/// 執(zhí)行SQL語句,返回結(jié)果集的DataReader
/// </summary>
/// <param name="connString">連接字符串</param>
/// <param name="cmdText">SQL語句</param>
/// <param name="parameters">參數(shù)</param>
/// <returns>結(jié)果集的DataReader</returns>
public static SQLiteDataReader ExecuteReader(string connString, string cmdText, params SQLiteParameter[] parameters)
{
SQLiteConnection conn = new SQLiteConnection(connString);
SQLiteCommand cmd = new SQLiteCommand();
try
{
PrepareCommand(cmd, conn, null, cmdText, parameters);
SQLiteDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return rdr;
}
catch
{
conn.Close();
throw;
}
}
/**//// <summary>
/// 預(yù)處理Command對象,數(shù)據(jù)庫鏈接,事務(wù),需要執(zhí)行的對象,參數(shù)等的初始化
/// </summary>
/// <param name="cmd">Command對象</param>
/// <param name="conn">Connection對象</param>
/// <param name="trans">Transcation對象</param>
/// <param name="cmdText">SQL Text</param>
/// <param name="parameters">參數(shù)實(shí)例</param>
private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, SQLiteTransaction trans, string cmdText, params SQLiteParameter[] parameters)
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
cmd.Transaction = trans;
if (null != parameters && parameters.Length > 0)
{
cmd.Parameters.AddRange(parameters);
}
}
}
}

  3. 增刪改查:
復(fù)制代碼 代碼如下:

Insert,Delete,Update
const string s_AddressTreeIntoSQLite = "Insert into [AddressTree] ([Id],[ItemType],[ParentId],[Name]) values (@Id,@ItemType,@ParentId,@Name);";
SqliteHelper.ExecuteNonQuery(tran, s_AddressTreeIntoSQLite,
//new SQLiteParameter[] here
);
Select
const string s_AddresTreeFromSqlCE = "Select [Id],[ItemType],[ParentId],[Name] From [AddressTree];";
using (SqlCeDataReader rdr = SqlCeHelper.ExecuteReader(s_AddresTreeFromSqlCE ))
{
while (rdr.Read())
{
//Read Data Here
}
}

  4. 其他
  SQLite性能絕對強(qiáng)悍.四表連接查詢,查詢200次,SQL CE需要44秒(with index),SQLite只需要3-6秒(with index).
插入,刪除更新性能參見http://www.cnblogs.com/egmkang/archive/2009/06/06/1497678.html
  PS:最近發(fā)現(xiàn)執(zhí)行sql的時(shí)候,最好使用單一的長連接,而不是ConnectionString.原因很簡單,嵌入式數(shù)據(jù)庫沒有連接池技術(shù),
在進(jìn)行數(shù)據(jù)庫查詢中的鏈接的打開關(guān)閉費(fèi)用相對來說比較高昂.這一點(diǎn)在寫程序的時(shí)候注意以下.
  還有,有關(guān)二進(jìn)制資源,需要及時(shí)釋放,例如SqlCommand,這些在寫Web 程序的時(shí)候體驗(yàn)不是很大,畢竟那種環(huán)境擁有大量
的內(nèi)存,GC的效率又是比較高.
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
91精品国产99久久久久久| 国产男女免费视频| av大片免费看| 国产精品主播一区二区| 国产真人无遮挡作爱免费视频| 男插女免费视频| 一区二区三区福利视频| 无码人妻精品一区二区中文| av午夜在线| 精品久久久久久国产| 波多野结衣高清视频| 精品人妻一区二区色欲产成人| 精品国产免费第一区二区| 欧美hentaied在线观看| 国产成+人+综合+亚洲欧美| 欧美淫片网站| 日韩毛片高清在线播放| 日韩欧美在线国产| 国产女主播一区| 国产伦精品一区二区三区免费优势| 全程偷拍露脸中年夫妇| 日本免费看片网站| 中文字幕在线视频第一页| 成人在线二区| 亚洲女人的天堂| 色婷婷av一区二区三区之红樱桃| 亚洲综合婷婷久久| 在线播放免费av| 欧美日本亚洲| 国产精品自拍三区| 日韩欧美久久久| 久久www免费人成看片高清| 亚洲第一区色| 日本在线不卡一区二区| 99视频免费观看蜜桃视频| 久久狠狠久久| 亚洲不卡一区二区三区| 中文字幕 91| 精品日韩在线播放| 亚洲欧美伊人| 中文成人综合网| 国产精品久久久免费视频| 国产一区二区视频在线观看免费| 精品国语对白精品自拍视| 成人h版在线观看| 国产精品久久久久久9999| 亚洲无亚洲人成网站77777| 免费观看成年人视频在线观看| 超级碰碰久久| 99久久精品国产一区二区三区| 高清孕妇孕交╳╳交| 久久久久久久久久看片| 欧美交换国产一区内射| 成人日韩欧美| 国产麻豆综合| 欧美久久久久久久久中文字幕| 亚洲区一区二区三| 在线免费a视频| 99thz桃花论族在线播放| 污污的网站免费| 国产日产精品一区二区三区四区| 日本黄视频在线观看| 欧美一级特黄aaaaaa在线看片| 日本wwwxxxx| 噜噜噜在线观看免费视频日韩| 久久亚洲综合色| 久久av导航| 天堂va在线高清一区| 亚洲欧洲在线视频| 日韩欧美中文一区二区| 亚洲性视频网址| 91中文在线观看| 国产精品九九九九九| 国产99免费视频| 国产盗摄xxxx视频xxx69| 国产精品久久久久av福利动漫| 久久精品国产成人| 国产一级淫片久久久片a级| 欧美成人性福生活免费看| 成人性生交大片免费看中文| 久久久久久久久综合| 欧美xxxxxx| 玖草视频在线观看| 国产日韩综合一区二区性色av| 久久电影网站中文字幕| 丁香六月激情网| 午夜欧美2019年伦理| 日产精品久久久久久久性色| freexxx性亚洲精品| 国产99久一区二区三区a片| 精品黑人一区二区三区在线观看| 醉酒壮男gay强迫野外xx| 韩国一区二区三区| 日本高清成人免费播放| 亚洲s色大片在线观看| 亚洲成人av网址| 国产精品一区二区在线观看不卡| 国产成a人无v码亚洲福利| 国产精品日韩精品中文字幕| 日韩乱码一区二区| 亚洲欧美电影一区二区| 亚洲人成毛片在线播放女女| 国产精品男人爽免费视频1| 精品一区二区三区四区| 九色porny蝌蚪视频在线观看| 奇米网一区二区| 精品三区视频| 九九热视频这里只有精品| av日韩亚洲| 日韩中文首页| 日韩女同一区二区三区| 国产精品福利久久久| 成人爱爱网址| 含羞草久久爱69一区| 日韩mv欧美mv国产网站| 日本在线播放一区二区三区| 亚洲激情在线观看| 伊人久久久久久久久久久久久久| 欧美—级在线免费片| 日韩a在线看| 国产美女极品在线| a在线观看免费视频| 成人免费观看视频大全| 最新国产精品自拍| 久久综合国产精品台湾中文娱乐网| 国产亚洲福利社区| 日本一区二区三区四区| 蜜臀av亚洲一区中文字幕| www.五月婷| 国产精品亲子伦对白| 国产强伦人妻毛片| 色悠久久久久综合欧美99| 欧美性理论片在线观看片免费| 国产一区二区看久久| 九九热视频精品| 欧美精品一线| www.国产福利| 日本不卡免费播放| 成人午夜激情网| 色香蕉成人二区免费| 久久精品国产精品亚洲| 亚洲一区精品在线| 污污软件在线观看| 人人妻人人爽人人澡人人精品| 日本亚洲欧洲色α| 91av在线网站| 红杏aⅴ成人免费视频| 亚洲1区2区3区视频| 九色精品免费永久在线| 国产伦精品一区二区三| 艳女tv在线观看国产一区| 欧美日韩大片一区二区三区| 麻豆视频在线观看免费网站黄| 亚洲精品永久视频| 国产精品久久久久永久免费观看| 国产真实精品久久二三区| 四虎影视最新地址| 国产91精品一区二区绿帽| 国产精品综合色区在线观看| www.久久热| 超薄肉色丝袜足j调教99| 国产成人无码www免费视频播放| 老司机免费视频一区二区三区| 国产精品永久| 久久久www免费人成精品| 久久久久久久久久久99| 在线激情影院一区| 欧美一区二区三区综合| 免费日韩电影| 中文字幕在线免费播放| 欧美性受ⅹ╳╳╳黑人a性爽| 一级香蕉视频在线观看| 三级小视频在线观看| 男女爱爱视频免费| 亚洲国产另类精品专区| 神马久久高清| 国产精品中文字幕在线观看| 小泽玛利亚视频在线观看| 日韩av中文字幕在线| 国产噜噜噜噜噜久久久久久久久| 一本色道久久| av在线播放资源| 久久精品一区蜜桃臀影院| 亚洲欧美制服第一页| 在线视频不卡一区二区三区| 麻豆91免费| 成人免费观看在线网址| 国产欧美欧美| 精品久久香蕉国产线看观看gif| 国产精品沙发午睡系列| 久久69成人| 国产三级伦理片| 精品久久一区二区| 免费一级a毛片| 成人激情视频网站| 蜜桃精品视频| 57pao精品| 亚洲精品555| 日韩欧美在线123| www.成人av.com| 欧美午夜精品久久久久久久| 精品国产一二三四区| 国产精品av免费观看| 神马久久久久久| 午夜精品久久久久久久99热黄桃| 亚洲欧美另类综合偷拍| 欧美日韩国产色综合一二三四| 四虎网站在线观看| 97干com| 国产精品白浆一区二小说| 一区二区三区毛片免费| 男男做性免费视频网| 成人区精品一区二区婷婷| 国产精品自偷自拍| 精品无码一区二区三区| 91免费视频网址| 天堂中文在线官网| 国产伦精品一区二区三区妓女| 国产成人三级在线播放| 欧美激情啊啊啊| 欧美一级精品| 日韩欧美1区| 国产精品永久| 800av在线免费观看| 国产亚洲第一页| 黄色大片免费观看| 国产精品日韩欧美一区| av免费在线一区| 韩国女同性做爰三级| 高潮无码精品色欲av午夜福利| 久久综合九色综合久久久精品综合| 天堂久久一区二区三区| 超碰福利在线观看| 欧美国产日本视频| 91电影在线观看| 国产无套粉嫩白浆在线2022年| 91国偷自产一区二区三区的观看方式| 欧美性狂猛xxxxxbbbbb| 性xxxxfjsxxxxx欧美| 国产精品18久久久久久久久久久久| 成人全视频高清免费观看| 国产片在线播放| 中文字幕免费在线观看视频一区| 亚洲2区在线| 午夜精品国产精品大乳美女| 性欧美videos高清hd4k| 亚洲卡通欧美制服中文| 亚洲午夜久久久久中文字幕| 99在线视频精品| 男女啪啪999亚洲精品| 色婷婷激情综合| 亚洲国产欧美日本视频| 涩涩涩久久久成人精品| 欧美日韩国产在线观看| 欧美日韩人人澡狠狠躁视频| 男人的天堂亚洲在线| 国产一区2区在线观看| 国产精品久久久av久久久| 日韩国产在线观看一区| 国产熟女高潮一区二区三区| 亚洲大全视频| 国产精品99导航| qvod激情图片| 麻豆视频在线免费看| 97精品免费视频| 伊人久久综合一区二区| freemovies性欧美| 欧美hdfree性xxxx| 波多野结衣家庭教师在线观看| 69堂成人精品视频免费| 水蜜桃久久夜色精品一区| av在线网站观看| 岛国毛片av在线| 亚洲综合色区另类av| 伊人久久大香线蕉av一区| 热久久久久久| 日韩欧美在线观看| 国产sm精品调教视频网站| 美女视频免费一区| 国产主播在线观看| 色天天综合色天天久久| 最近中文字幕mv免费高清视频8| 日本一区二区乱| 色婷婷综合缴情免费观看| 神马久久久久久| 青青青草原在线| 欧美日韩一区二区免费在线观看| 欧美另类videos粗暴黑人| 波多野结衣高清视频| 久久精品成人av| 国产精品每日更新在线播放网址| 日韩在线网址| 亚洲视频精品| 久久97久久97精品免视看| 亚洲日本免费电影| 黄页网站大全在线观看| 九九视频在线播放| 久久综合伊人| 综合自拍亚洲综合图不卡区| 91av com| 国产欧美日韩在线| 精品久久久久久久免费人妻| 99久久久精品免费观看国产蜜| 久久精品高清| 一区二区三区少妇| 亚洲码欧美码一区二区三区| 丰满少妇又爽又紧又丰满电影| 在线综合视频| 亚洲一级特黄毛片| 99re免费99re在线视频手机版| 成人伊人精品色xxxx视频| 欧美日韩一区小说| 久久精品国产亚洲精品| 国产日产一区二区三区| 成人中文视频| 日本成人超碰在线观看| 日本久久黄色| 国产传媒在线视频| 欧美精品一区二区三区在线看午夜| 成人开心激情| 国产三级电影在线| 超级砰砰砰97免费观看最新一期| 69夜色精品国产69乱| 99国产精品国产精品毛片| 国产欧美成人xxx视频| 男人女人拔萝卜视频| 日本欧美大码aⅴ在线播放| 肥臀熟女一区二区三区|