婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Sqlite 常用函數封裝提高Codeeer的效率

Sqlite 常用函數封裝提高Codeeer的效率

熱門標簽:朝陽市地圖標注 東莞語音電銷機器人排名 電話機器人廣告話術 蘇州銷售外呼系統預算 保山電話外呼管理系統怎么用 太原外呼電銷機器人費用 使用智能電話機器人違法嗎 外呼系統用員工身份證 淘寶地圖標注如何做
以下是頻繁用到的Sqlite函數,內容格式相對固定,封裝一下有助于提高開發效率(^_^至少提高Codeeer的效率了)

而且,我發現Sqlite中文資料比較少,起碼相對其他找起來要復雜些,服務一下大眾~
我沒有封裝讀取部分,因為數據庫讀取靈活性太大,封裝起來難度也大,而且就算封裝好了,也難以應付所有情況,還是建議根據實際情況設計代碼邏輯。

創建
復制代碼 代碼如下:

/// summary>
/// Creat New Sqlite File
/// /summary>
/// param name="NewTable">New Table Name/param>
/// param name="NewWords">Words list of the New Table/param>
/// returns>IsSuccessful/returns>
public static bool Creat(string DataSource, string NewTable, Liststring> NewWords)
{
try
{
//Creat Data File
SQLiteConnection.CreateFile(DataSource);
//Creat Table
using (DbConnection conn = SQLiteFactory.Instance.CreateConnection())
{
//Connect
conn.ConnectionString = "Data Source=" + DataSource;
conn.Open();
//Creat
string Bazinga = "create table [" + NewTable + "] (";
foreach (string Words in NewWords)
{
Bazinga += "[" + Words + "] BLOB COLLATE NOCASE,";
}
//Set Primary Key
//The Top item from the "NewWords"
Bazinga += @"PRIMARY KEY ([" + NewWords[0] + "]))";
DbCommand cmd = conn.CreateCommand();
cmd.Connection = conn;
cmd.CommandText = Bazinga;
cmd.ExecuteNonQuery();
}
return true;
}
catch (Exception E)
{
MessageBox.Show(E.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
}

刪除
復制代碼 代碼如下:

/// summary>
/// Delete Date
/// /summary>
/// param name="DataSource">/param>
/// param name="TargetTable">/param>
/// param name="Word">/param>
/// param name="Value">/param>
/// returns>/returns>
public static bool Delete(string DataSource, string TargetTable, string Word, string Value)
{
try
{
//Connect
using (DbConnection conn = SQLiteFactory.Instance.CreateConnection())
{
conn.ConnectionString = "Data Source=" + DataSource;
conn.Open();
DbCommand cmd = conn.CreateCommand();
cmd.Connection = conn;
//Delete
cmd.CommandText = "Delete From " + TargetTable + " where [" + Word + "] = '" + Value + "'";
cmd.ExecuteNonQuery();
}
return true;
}
catch (Exception E)
{
MessageBox.Show(E.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
}

插入
這里要說明下,因為存在多字段同時插入的情況(何止存在,很普遍- -。沒見過誰的數據庫像意大利面條一樣)

在這里設計了Insert結構用以儲存字段和值的關系(曾考慮過用數組的辦法實現,可是那玩意不太方便調用,瞅著挺抽象的,不太好用,如果有更好的建議,歡迎留言~)
復制代碼 代碼如下:

/// summary>
/// Use to format Insert column's value
/// /summary>
public struct InsertBag
{
public string ColumnName;
public string Value;
public InsertBag(string Column, string value)
{
ColumnName = Column;
Value = value;
}
}

以下為插入模塊的主函數
復制代碼 代碼如下:

/// summary>
/// Insert Data
/// /summary>
/// param name="DataSource">/param>
/// param name="TargetTable">/param>
/// param name="InsertBags">struck of InsertBag/param>
/// returns>/returns>
public static bool Insert(string DataSource, string TargetTable, ListInsertBag> InsertBags)
{
try
{
using (DbConnection conn = SQLiteFactory.Instance.CreateConnection())
{
//Connect Database
conn.ConnectionString = "Data Source=" + DataSource;
conn.Open();
//Deal InsertBags
StringBuilder ColumnS = new StringBuilder();
StringBuilder ValueS = new StringBuilder();
for (int i = 0; i InsertBags.Count; i++)
{
ColumnS.Append(InsertBags[i].ColumnName + ",");
ValueS.Append("'" + InsertBags[i].Value + "',");
}
if (InsertBags.Count == 0)
{
throw new Exception("InsertBag 數據包為空,睜大你的狗眼……");
}
else
{
//Drop the last "," from the ColumnS and ValueS
ColumnS = ColumnS.Remove(ColumnS.Length - 1, 1);
ValueS = ValueS.Remove(ValueS.Length - 1, 1);
}
//Insert
DbCommand cmd = conn.CreateCommand();
cmd.CommandText = "insert into [" + TargetTable + "] (" + ColumnS.ToString() + ") values (" + ValueS.ToString() + ")";
cmd.ExecuteNonQuery();
return true;
}
}
catch (Exception E)
{
MessageBox.Show(E.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return false;
}
}

目測有點復雜呢,來個Demo,有必要說下,“W2”和“W44”是已經設計好的字段,而“TableTest”是已經添加好的表段
復制代碼 代碼如下:

ListSqlite.InsertBag> Lst = new ListSqlite.InsertBag>();
Lst.Add(new Sqlite.InsertBag("W2", "222222222"));
Lst.Add(new Sqlite.InsertBag("W44", "4444444"));
Sqlite.Insert(@"D:\1.Sql3", "TableTest", Lst);

表段獲取
復制代碼 代碼如下:

/// summary>
/// Get Tables From Sqlite
/// /summary>
/// returns>list of Tables/returns>
public static Liststring> GetTables(string DataSource)
{
Liststring> ResultLst = new Liststring>();
using (SQLiteConnection conn = new SQLiteConnection("Data Source=" + DataSource))
{
conn.Open();
using (SQLiteCommand tablesGet = new SQLiteCommand("SELECT name from sqlite_master where type='table'", conn))
{
using (SQLiteDataReader tables = tablesGet.ExecuteReader())
{
while (tables.Read())
{
try
{
ResultLst.Add(tables[0].ToString());
}
catch (Exception E)
{
MessageBox.Show(E.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
}
return ResultLst;
}

字段獲取
復制代碼 代碼如下:

/// summary>
/// Get Words From Table->Sqlite
/// /summary>
/// param name="TargetTable">Target Table/param>
/// returns>list of Words/returns>
public static Liststring> GetWords(string DataSource,string TargetTable)
{
Liststring> WordsLst = new Liststring>();
using (SQLiteConnection conn = new SQLiteConnection("Data Source=" + DataSource))
{
conn.Open();
using (SQLiteCommand tablesGet = new SQLiteCommand(@"SELECT * FROM " + TargetTable, conn))
{
using (SQLiteDataReader Words = tablesGet.ExecuteReader())
{
try
{
for (int i = 0; i Words.FieldCount; i++)
{
WordsLst.Add(Words.GetName(i));
}
}
catch (Exception E)
{
MessageBox.Show(E.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
return WordsLst;
}

解釋下,為啥代碼中的注釋基本都用英文寫了,因為這段時間在學雙拼- -??墒沁€不太熟悉,打字超慢,而且Code的時候容易打斷思路,好在~英文不多,而且這些都看不懂的話你……你要向我解釋一下你是怎么一路學到數據庫的 0。
您可能感興趣的文章:
  • 讓Sqlite脫離VC++ Runtime獨立運行的方法
  • C++操作SQLite簡明教程
  • SQLite 入門教程三 好多約束 Constraints
  • C#中使用SQLite數據庫的方法介紹
  • ASP.NET(C#)中操作SQLite數據庫實例
  • VC++基于Dx實現的截圖程序示例代碼
  • VC++實現輸出GIF到窗體并顯示GIF動畫的方法
  • VC++開發中完美解決頭文件相互包含問題的方法解析
  • 淺析VC++中的頭文件包含問題
  • VC++操作SQLite簡單實例

標簽:綏化 運城 潛江 呼倫貝爾 克拉瑪依 西藏 洛陽 阿里

巨人網絡通訊聲明:本文標題《Sqlite 常用函數封裝提高Codeeer的效率》,本文關鍵詞  Sqlite,常用,函數,封裝,提高,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Sqlite 常用函數封裝提高Codeeer的效率》相關的同類信息!
  • 本頁收集關于Sqlite 常用函數封裝提高Codeeer的效率的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产一区二区三区四区在线观看| 洋洋成人永久网站入口| 中文字幕佐山爱一区二区免费| 久久av中文字幕片| 欧美成人高清电影在线| 韩国av一区二区| 久久久青草青青国产亚洲免观| 国产一区二区在线看| 精品久久久久久久久久久院品网| 久久91精品国产91久久小草| 久久久久久一级片| 99在线精品免费| 一区二区三区精品在线观看| 欧美亚一区二区| 日韩成人免费在线| 国产欧美久久久精品影院| 岛国av在线一区| 亚洲夂夂婷婷色拍ww47 | 亚洲一区二区三区四区在线| 在线观看91视频| 日本不卡一区二区三区| 国产欧美日韩中文久久| 在线视频你懂得一区二区三区| 日精品一区二区| 欧美国产日韩亚洲一区| 在线观看av一区| 激情久久五月天| 亚洲另类一区二区| 久久女同互慰一区二区三区| 日本高清成人免费播放| 国产在线精品国自产拍免费| 亚洲国产综合人成综合网站| 久久精品一区蜜桃臀影院| 国产在线乱码一区二区三区| 亚洲一区在线播放| 中文字幕av一区二区三区免费看| 欧美二区乱c少妇| 91麻豆文化传媒在线观看| 日本vs亚洲vs韩国一区三区二区 | 国产亚洲欧洲997久久综合| 91精品福利视频| 国产一区二区成人久久免费影院| 一卡二卡三卡日韩欧美| 久久先锋影音av鲁色资源网| 欧美日韩成人在线一区| 99精品1区2区| 国产99久久久国产精品潘金| 亚洲国产毛片aaaaa无费看| 国产精品欧美极品| 久久久久久久久久电影| 日韩女优制服丝袜电影| 欧美精品国产精品| 欧美视频三区在线播放| 欧洲视频一区二区| 99久久99久久综合| 国产成人高清在线| 岛国精品在线观看| 成人午夜在线免费| 国产成人亚洲精品青草天美| 国产精品久久久久久久久久久免费看| 91麻豆精品国产综合久久久久久| 成人少妇影院yyyy| 国产美女av一区二区三区| 欧美aaaaaa午夜精品| 视频一区欧美精品| 日韩av一区二区三区四区| 亚洲国产精品自拍| 亚洲国产婷婷综合在线精品| 一片黄亚洲嫩模| 亚洲福利国产精品| 免费一级片91| 国产乱理伦片在线观看夜一区| 国产精品羞羞答答xxdd| 国产精品一区免费在线观看| 国产91清纯白嫩初高中在线观看| 国产成人免费视频网站| jlzzjlzz欧美大全| 欧美午夜理伦三级在线观看| 欧美一区二区精品在线| 久久综合av免费| 中文字幕制服丝袜一区二区三区 | 国产精品蜜臀在线观看| 亚洲欧美综合色| 亚洲bt欧美bt精品| 国内偷窥港台综合视频在线播放| 国产成人免费视频网站高清观看视频| 99亚偷拍自图区亚洲| 欧美人牲a欧美精品| 日韩精品中文字幕一区二区三区| www一区二区| 亚洲精品国产高清久久伦理二区| 青青草原综合久久大伊人精品 | 26uuu精品一区二区在线观看| 亚洲国产高清aⅴ视频| 夜夜嗨av一区二区三区网页| 免费成人你懂的| av亚洲精华国产精华精华| 91精品国产色综合久久| 中文字幕亚洲一区二区va在线| 亚洲国产日日夜夜| 国产成人亚洲综合a∨猫咪| 日本道色综合久久| 久久久久久久久久久久电影 | 亚洲精品一二三| 久久超碰97中文字幕| 一本色道亚洲精品aⅴ| 精品欧美黑人一区二区三区| 亚洲愉拍自拍另类高清精品| 国产成人精品三级麻豆| 日韩视频免费观看高清完整版| 亚洲h在线观看| 成人一级黄色片| 日韩欧美色电影| 一区二区三区免费看视频| 国产精品羞羞答答xxdd| 777午夜精品免费视频| 国产精品网曝门| 蜜臀av国产精品久久久久| 91国在线观看| 国产精品久久久久久久久动漫 | 在线不卡免费欧美| 日韩一区日韩二区| 国产成人免费av在线| 欧美丰满少妇xxxxx高潮对白| 中文字幕一区二区三区不卡 | 91超碰这里只有精品国产| 欧美一级在线观看| 国产人成亚洲第一网站在线播放| 久久精品国产99久久6| 一本一道久久a久久精品 | 亚洲综合在线五月| www..com久久爱| 亚洲欧洲一区二区三区| 粉嫩嫩av羞羞动漫久久久| 久久久午夜精品| 精品无人码麻豆乱码1区2区| 日韩美女在线视频| 九九精品一区二区| 久久网站热最新地址| 国产一区在线精品| 久久久久久**毛片大全| 粉嫩13p一区二区三区| 国产精品免费视频观看| 99国产麻豆精品| 一区二区三区成人| 69p69国产精品| 激情欧美一区二区| 国产精品久久久久久一区二区三区| 国产99久久久国产精品免费看| 国产精品久久久久久亚洲伦| 波多野结衣的一区二区三区| 亚洲欧洲综合另类在线| 精品视频一区 二区 三区| 日韩电影在线免费| 精品成a人在线观看| 国产一区二区三区综合| 中文字幕亚洲在| 在线成人高清不卡| 国产成人精品亚洲777人妖| 成人免费在线播放视频| 欧美影片第一页| 精品亚洲国内自在自线福利| 亚洲国产岛国毛片在线| 欧美性大战xxxxx久久久| 久久99国产精品尤物| 亚洲欧美综合另类在线卡通| 欧美精品一二三| 国产激情91久久精品导航| 亚洲精品视频免费观看| 日韩一级片网址| 91在线高清观看| 美女视频黄免费的久久 | 精品国产123| 97久久精品人人澡人人爽| 日韩精品一二三| 一区精品在线播放| 日韩免费视频一区| 色综合久久精品| 国产精品一级在线| 午夜欧美一区二区三区在线播放| 久久网站最新地址| 欧美日本韩国一区| 99国产一区二区三精品乱码| 激情综合色综合久久| 亚洲午夜在线电影| 国产精品热久久久久夜色精品三区| 欧美日本乱大交xxxxx| 国产精品白丝jk白祙喷水网站| 爽好久久久欧美精品| 亚洲色图在线看| 国产日韩av一区| 精品久久久久久久久久久久包黑料 | 91在线云播放| 国产一区二区电影| 日本aⅴ精品一区二区三区| 亚洲少妇30p| 国产精品电影院| 中文字幕第一页久久| 久久久久久久久久久久久女国产乱| 在线播放中文字幕一区|