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

首頁 > 編程 > C# > 正文

C# SQLite數據庫入門使用說明

2019-10-29 19:58:00
字體:
來源:轉載
供稿:網友

前言

我們在開發應用是經常會需要用到一些數據的存儲,存儲的方式有多種,使用數據庫是一種比較受大家歡迎的方式。但是對于一些小型的應用,如一些移動APP,通常的數據庫過于龐大,而輕便的SQLite則能解決這一問題。不但操作方便,而且只需要要一個文件即可,在這里我們來說一說使用C#語言操作SQLite數據庫。

一、NuGet引入SQLite庫

在VS菜單:工具→NuGet包管理器→管理解決方案的NuGet程序包 打開NuGet解決方案窗口。

搜索 sqlite,選擇官方的庫安裝到指定的項目中。:

C#,SQLite,數據庫

提示:System.Data.SQLite 分為 x86 和 x64 版本,這里推薦使用NuGet自動安裝。使用 Any CPU 編譯的時候,會自動拷貝32位和64位 Interop DLL文件到子目錄中。程序運行的時候會根據電腦的運行環境自動選擇合適的dll。

C#,SQLite,數據庫

二、DBHelper類庫

using System.Collections.Generic;using System.Data;using System.Data.SQLite;using System.Configuration;using System.Data.SqlClient;//using MySql.Data.MySqlClient;namespace ConsoleApp5{ public class DBHelper {  private readonly static string connStr = ConfigurationManager.ConnectionStrings["Data Source=mesclient.sqlite;Version=3"].ConnectionString;  //獲取 appsetting 設置的值  //private readonly static string appStr = ConfigurationManager.AppSettings["TestKey"];  //獲取 connection 對象  public static IDbConnection CreateConnection()  {   IDbConnection conn = new SQLiteConnection(connStr);//MySqlConnection //SqlConnection   conn.Open();   return conn;  }  //執行非查詢語句  public static int ExecuteNonQuery(IDbConnection conn, string sql, Dictionary<string, object> parameters)  {   using (IDbCommand cmd = conn.CreateCommand())   {    cmd.CommandText = sql;    foreach (KeyValuePair<string, object> keyValuePair in parameters)    {     IDbDataParameter parameter = cmd.CreateParameter();     parameter.ParameterName = keyValuePair.Key;     parameter.Value = keyValuePair.Value;     cmd.Parameters.Add(parameter);    }    return cmd.ExecuteNonQuery();   }  }  //執行非查詢語句-獨立連接  public static int ExecuteNonQuery(string sql, Dictionary<string, object> parameters)  {   using (IDbConnection conn = CreateConnection())   {    return ExecuteNonQuery(conn, sql, parameters);   }  }  //查詢首行首列  public static object ExecuteScalar(IDbConnection conn, string sql, Dictionary<string, object> parameters)  {   using (IDbCommand cmd = conn.CreateCommand())   {    cmd.CommandText = sql;    foreach (KeyValuePair<string, object> keyValuePair in parameters)    {     IDbDataParameter parameter = cmd.CreateParameter();     parameter.ParameterName = keyValuePair.Key;     parameter.Value = keyValuePair.Value;     cmd.Parameters.Add(parameter);    }    return cmd.ExecuteScalar();   }  }  //查詢首行首列-獨立連接  public static object ExecuteScalar(string sql, Dictionary<string, object> parameters)  {   using (IDbConnection conn = CreateConnection())   {    return ExecuteScalar(conn, sql, parameters);   }  }  //查詢表  public static DataTable ExecuteQuery(IDbConnection conn, string sql, Dictionary<string, object> parameters)  {   DataTable dt = new DataTable();   using (IDbCommand cmd = conn.CreateCommand())   {    cmd.CommandText = sql;    foreach (KeyValuePair<string, object> keyValuePair in parameters)    {     IDbDataParameter parameter = cmd.CreateParameter();     parameter.ParameterName = keyValuePair.Key;     parameter.Value = keyValuePair.Value;     cmd.Parameters.Add(parameter);    }    using (IDataReader reader = cmd.ExecuteReader())    {     dt.Load(reader);    }   }   return dt;  }  //查詢表--獨立連接  public static DataTable ExecuteQuery(string sql, Dictionary<string, object> parameters)  {   using (IDbConnection conn = CreateConnection())   {    return ExecuteQuery(conn, sql, parameters);   }  } }}

三、基本使用

1. 判斷數據文件是否存在

/// <summary>/// 檢查數據庫是否存在不存在創建/// </summary>/// <returns></returns>public static bool CheckDataBase(){ try {  //判斷數據文件是否存在  bool dbExist = File.Exists("mesclient.sqlite");  if (!dbExist)  {   SQLiteConnection.CreateFile("mesclient.sqlite");  }  return true; } catch (Exception) {  return false; }}

2. 判斷表是否存在

/// <summary>/// 檢查數據表是否存在,不存在創建/// </summary>/// <returns></returns>public static bool CheckDataTable(string connStr){ try {  using (SQLiteConnection conn = new SQLiteConnection(connStr))  using (SQLiteCommand cmd = conn.CreateCommand())  {   conn.Open();   cmd.CommandText = "SELECT count(*) FROM sqlite_master WHERE type = 'table' AND name = 'serverinfo'";   object ob = cmd.ExecuteScalar();   long tableCount = Convert.ToInt64(ob);   if (tableCount == 0)   {    //創建表    cmd.CommandText = @"   BEGIN;    create table serverinfo     (Id INTEGER PRIMARY KEY AUTOINCREMENT,Name TEXT,    Url text,DelayTime integer,UsageCounter INTEGER,     Status integer,CreateTime DATETIME);    CREATE UNIQUE INDEX idx_serverInfo ON serverinfo (Name);   COMMIT;   ";    //此語句返回結果為0    int rowCount = cmd.ExecuteNonQuery();    return true;   }   else if (tableCount > 1)   {    return false;   }   else   {    return true;   }  } } catch (Exception ex) {  return false; }}

3. 查詢

string sql = "SELECT * FROM serverinfo WHERE Name =@ServerName AND Url = @Url and date(CreateTime)=date(@Date);";Dictionary<string, object> parameters = new Dictionary<string, object>();parameters.Add("ServerName",endpointElement.Name);parameters.Add("Url", endpointElement.Address);parameters.Add("Date", DateTime.Now.ToString("yyyy-MM-dd"));DataTable dt=SqliteHelper.ExecuteQuery(connStr, sql, parameters);if (dt.Rows.Count>0){ UsageCounter = dt.Rows[0].Field<long>("UsageCounter"); GetTime = dt.Rows[0].Field<DateTime>("CreateTime");}

4. 新增/修改

//存在更新,不存在插入string updateSql = "REPLACE INTO serverinfo(Name,Url,DelayTime,UsageCounter, Status,CreateTime) VALUES(@Name,@Url,@DelayTime,@UsageCounter,@Status, @CreateTime)";Dictionary<string, object> ups = new Dictionary<string, object>();ups.Add("Name", name);ups.Add("Url", url);ups.Add("DelayTime", delayTime);ups.Add("UsageCounter", usageCounter);ups.Add("Status", status);ups.Add("CreateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));int count= SqliteHelper.ExecuteNonQuery(connStr, updateSql, ups);if (count>0){ return true;}else{ return false;}

5. 刪除

//刪除記錄string updateSql = "DELETE FROM serverinfo where content=@Content and flag=@Flag;";Dictionary<string, object> updateParameters = new Dictionary<string, object>();updateParameters.Add("Content", Content);updateParameters.Add("Flag", Flag);int count = SqliteHelper.ExecuteNonQuery(connStr, updateSql, updateParameters);if (count > 0){ return true;}else{ return false;}

四、參考文章

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人成电影网站| 久久久久久高潮国产精品视| 色偷偷88888欧美精品久久久| 韩国三级电影久久久久久| 亚洲精品国产精品国自产观看浪潮| 国产精品久久久久av| 亚洲精品美女在线| 久久亚洲欧美日韩精品专区| 欧美激情精品久久久久久久变态| 久久久噜噜噜久久中文字免| 1769国内精品视频在线播放| 亚洲无av在线中文字幕| 欧美性猛交xxxx| 欧美日韩第一视频| 欧美福利视频网站| 亚洲美女在线观看| 欧美激情一区二区三区久久久| 亚洲大胆人体在线| 91麻豆桃色免费看| 亚洲欧美综合图区| 成人日韩av在线| 国产精品永久在线| 亚洲欧洲国产精品| 国产91色在线播放| 青青精品视频播放| 精品久久久视频| 日韩小视频网址| 92国产精品久久久久首页| 久久999免费视频| 精品一区二区三区电影| 在线看日韩av| 日韩免费在线观看视频| 欧美精品电影在线| 91久久精品国产| 热re91久久精品国99热蜜臀| 日韩国产激情在线| 亚洲免费精彩视频| 精品呦交小u女在线| 欧美午夜www高清视频| 国产在线高清精品| 亚洲国产美女久久久久| 丝袜情趣国产精品| 久久久久久久电影一区| 日韩av免费一区| 日韩中文字幕在线视频| 欧美电影《睫毛膏》| 久久精品男人天堂| 日韩欧美国产免费播放| 大荫蒂欧美视频另类xxxx| 久久精品视频va| 亚洲日韩欧美视频一区| 欧美日韩美女在线| 日韩欧美国产中文字幕| 中文字幕精品影院| 高跟丝袜欧美一区| 国产做受69高潮| 亚洲视频专区在线| 久久夜精品香蕉| 国产精品爽黄69天堂a| 欧美精品免费看| 国产午夜精品理论片a级探花| 亚洲在线观看视频| 中文字幕九色91在线| 国产精品jvid在线观看蜜臀| 亚洲精品永久免费精品| 亚洲精品成人久久电影| 91久久久国产精品| 久久亚洲国产精品| 国产在线精品自拍| 亚洲国产精彩中文乱码av在线播放| 亚洲男人天堂2023| 欧美国产视频一区二区| 在线日韩精品视频| 亚洲第一天堂av| 国色天香2019中文字幕在线观看| 欧美日韩精品在线| 国产在线视频一区| 亚洲精品电影在线观看| 97国产精品久久| 2019av中文字幕| 色偷偷88888欧美精品久久久| 欧美在线影院在线视频| 韩国三级电影久久久久久| 热99精品只有里视频精品| 97色在线播放视频| 日韩视频―中文字幕| 91久久国产婷婷一区二区| 国产精品中文字幕久久久| 午夜精品久久久久久久男人的天堂| 国产91色在线免费| 亚洲精品99999| 91夜夜未满十八勿入爽爽影院| 97视频免费在线观看| 欧美日韩成人黄色| 亚洲一品av免费观看| 精品视频9999| 久久久久久久久国产精品| 亚洲性日韩精品一区二区| 亚洲精品国产精品乱码不99按摩| 91av视频在线免费观看| 亚洲精品中文字幕av| 国产精品久久久久久久久久小说| 日韩av片永久免费网站| 伊人久久大香线蕉av一区二区| 91高潮在线观看| 亚洲精品在线视频| 久久青草福利网站| 亚洲精品98久久久久久中文字幕| 国产福利精品av综合导导航| 国产偷亚洲偷欧美偷精品| 午夜免费久久久久| 97超视频免费观看| 精品亚洲永久免费精品| 北条麻妃99精品青青久久| 国产精品777| 久久综合久久美利坚合众国| 国产黑人绿帽在线第一区| 成人国产精品日本在线| 狠狠躁夜夜躁人人躁婷婷91| 亚洲色图35p| 久久99精品视频一区97| 欧美有码在线视频| 亚洲国产日韩欧美在线图片| 亚洲另类图片色| 欧美性猛交xxxx黑人| 亚洲综合中文字幕在线观看| 日韩欧美成人免费视频| 成人网中文字幕| 91亚洲午夜在线| 日韩不卡中文字幕| 国产999精品视频| 欧美人成在线视频| 亚洲国产高清高潮精品美女| 国产精品国产亚洲伊人久久| 久久成人这里只有精品| 日韩精品亚洲元码| 亚洲精品动漫久久久久| 91av视频在线观看| 欧美激情视频一区| 亚洲少妇激情视频| 日韩激情片免费| 欧美高跟鞋交xxxxhd| 国内揄拍国内精品少妇国语| 久久影院模特热| 国产精品视频一| 一区二区三区视频在线| 国产精品久久久久久五月尺| 日韩在线观看免费高清| 久久精品亚洲94久久精品| 日韩中文字幕网| 久久久精品在线观看| 中文字幕亚洲一区| 国产亚洲人成网站在线观看| 亚洲精品免费网站| 色先锋久久影院av| 亚洲人精品午夜在线观看| 好吊成人免视频| 中文字幕精品在线| 成人午夜在线影院| …久久精品99久久香蕉国产| 日韩av在线天堂网| 欧美精品第一页在线播放| 日韩成人在线免费观看| 亚洲一级黄色av|