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

首頁 > 編程 > C# > 正文

C#封裝的Sqlite訪問類實例

2020-01-24 01:56:55
字體:
來源:轉載
供稿:網友

本文實例講述了C#封裝的Sqlite訪問類。分享給大家供大家參考。具體分析如下:

C#封裝的Sqlite訪問類,要訪問Sqlite這下簡單了,直接調用此類中的方法即可

using System;using System.Collections;using System.Collections.Specialized;using System.Data;using System.Configuration;using System.Data.SQLite;namespace DAL{ internal abstract class DbHelperSQLite {    public static string connectionString = "Data Source=" + AppDomain.CurrentDomain.BaseDirectory + @"dataleaf.db;Version=3;";  public DbHelperSQLite()  {  }  #region 公用方法  public static int GetMaxID(string FieldName, string TableName)  {   string strsql = "select max(" + FieldName + ")+1 from " + TableName;   object obj = GetSingle(strsql);   if (obj == null)   {    return 1;   }   else   {    return int.Parse(obj.ToString());   }  }  public static bool Exists(string strSql)  {   object obj = GetSingle(strSql);   int cmdresult;   if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))   {    cmdresult = 0;   }   else   {    cmdresult = int.Parse(obj.ToString());   }   if (cmdresult == 0)   {    return false;   }   else   {    return true;   }  }  public static bool Exists(string strSql, params SQLiteParameter[] cmdParms)  {   object obj = GetSingle(strSql, cmdParms);   int cmdresult;   if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))   {    cmdresult = 0;   }   else   {    cmdresult = int.Parse(obj.ToString());   }   if (cmdresult == 0)   {    return false;   }   else   {    return true;   }  }  #endregion  #region 執行簡單SQL語句  /// <summary>  /// 執行SQL語句,返回影響的記錄數  /// </summary>  /// <param name="SQLString">SQL語句</param>  /// <returns>影響的記錄數</returns>  public static int ExecuteSql(string SQLString)  {   using (SQLiteConnection connection = new SQLiteConnection(connectionString))   {    using (SQLiteCommand cmd = new SQLiteCommand(SQLString, connection))    {     try     {      connection.Open();      int rows = cmd.ExecuteNonQuery();      return rows;     }     catch (System.Data.SQLite.SQLiteException E)     {      connection.Close();      throw new Exception(E.Message);     }    }   }  }  /// <summary>  /// 執行多條SQL語句,實現數據庫事務。  /// </summary>  /// <param name="SQLStringList">多條SQL語句</param>    public static void ExecuteSqlTran(ArrayList SQLStringList)  {   using (SQLiteConnection conn = new SQLiteConnection(connectionString))   {    conn.Open();    SQLiteCommand cmd = new SQLiteCommand();    cmd.Connection = conn;    SQLiteTransaction tx = conn.BeginTransaction();    cmd.Transaction = tx;    try    {     for (int n = 0; n < SQLStringList.Count; n++)     {      string strsql = SQLStringList[n].ToString();      if (strsql.Trim().Length > 1)      {       cmd.CommandText = strsql;       cmd.ExecuteNonQuery();      }     }     tx.Commit();    }    catch (System.Data.SQLite.SQLiteException E)    {     tx.Rollback();     throw new Exception(E.Message);    }   }  }  /// <summary>  /// 執行帶一個存儲過程參數的的SQL語句。  /// </summary>  /// <param name="SQLString">SQL語句</param>  /// <param name="content">參數內容,比如一個字段是格式復雜的文章,有特殊符號,可以通過這個方式添加</param>  /// <returns>影響的記錄數</returns>  public static int ExecuteSql(string SQLString, string content)  {   using (SQLiteConnection connection = new SQLiteConnection(connectionString))   {    SQLiteCommand cmd = new SQLiteCommand(SQLString, connection);    SQLiteParameter myParameter = new SQLiteParameter("@content", DbType.String);    myParameter.Value = content;    cmd.Parameters.Add(myParameter);    try    {     connection.Open();     int rows = cmd.ExecuteNonQuery();     return rows;    }    catch (System.Data.SQLite.SQLiteException E)    {     throw new Exception(E.Message);    }    finally    {     cmd.Dispose();     connection.Close();    }   }  }  /// <summary>  /// 向數據庫里插入圖像格式的字段(和上面情況類似的另一種實例)  /// </summary>  /// <param name="strSQL">SQL語句</param>  /// <param name="fs">圖像字節,數據庫的字段類型為image的情況</param>  /// <returns>影響的記錄數</returns>  public static int ExecuteSqlInsertImg(string strSQL, byte[] fs)  {   using (SQLiteConnection connection = new SQLiteConnection(connectionString))   {    SQLiteCommand cmd = new SQLiteCommand(strSQL, connection);    SQLiteParameter myParameter = new SQLiteParameter("@fs", DbType.Binary);    myParameter.Value = fs;    cmd.Parameters.Add(myParameter);    try    {     connection.Open();     int rows = cmd.ExecuteNonQuery();     return rows;    }    catch (System.Data.SQLite.SQLiteException E)    {     throw new Exception(E.Message);    }    finally    {     cmd.Dispose();     connection.Close();    }   }  }  /// <summary>  /// 執行一條計算查詢結果語句,返回查詢結果(object)。  /// </summary>  /// <param name="SQLString">計算查詢結果語句</param>  /// <returns>查詢結果(object)</returns>  public static object GetSingle(string SQLString)  {   using (SQLiteConnection connection = new SQLiteConnection(connectionString))   {    using (SQLiteCommand cmd = new SQLiteCommand(SQLString, connection))    {     try     {      connection.Open();      object obj = cmd.ExecuteScalar();      if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))      {       return null;      }      else      {       return obj;      }     }     catch (System.Data.SQLite.SQLiteException e)     {      connection.Close();      throw new Exception(e.Message);     }    }   }  }  /// <summary>  /// 執行查詢語句,返回SQLiteDataReader  /// </summary>  /// <param name="strSQL">查詢語句</param>  /// <returns>SQLiteDataReader</returns>  public static SQLiteDataReader ExecuteReader(string strSQL)  {   SQLiteConnection connection = new SQLiteConnection(connectionString);   SQLiteCommand cmd = new SQLiteCommand(strSQL, connection);   try   {    connection.Open();    SQLiteDataReader myReader = cmd.ExecuteReader();    return myReader;   }   catch (System.Data.SQLite.SQLiteException e)   {    throw new Exception(e.Message);   }  }  /// <summary>  /// 執行查詢語句,返回DataSet  /// </summary>  /// <param name="SQLString">查詢語句</param>  /// <returns>DataSet</returns>  public static DataSet Query(string SQLString)  {   using (SQLiteConnection connection = new SQLiteConnection(connectionString))   {    DataSet ds = new DataSet();    try    {     connection.Open();     SQLiteDataAdapter command = new SQLiteDataAdapter(SQLString, connection);     command.Fill(ds, "ds");    }    catch (System.Data.SQLite.SQLiteException ex)    {     throw new Exception(ex.Message);    }    return ds;   }  }  #endregion  #region 執行帶參數的SQL語句  /// <summary>  /// 執行SQL語句,返回影響的記錄數  /// </summary>  /// <param name="SQLString">SQL語句</param>  /// <returns>影響的記錄數</returns>  public static int ExecuteSql(string SQLString, params SQLiteParameter[] cmdParms)  {   using (SQLiteConnection connection = new SQLiteConnection(connectionString))   {    using (SQLiteCommand cmd = new SQLiteCommand())    {     try     {      PrepareCommand(cmd, connection, null, SQLString, cmdParms);      int rows = cmd.ExecuteNonQuery();      cmd.Parameters.Clear();      return rows;     }     catch (System.Data.SQLite.SQLiteException E)     {      throw new Exception(E.Message);     }    }   }  }  /// <summary>  /// 執行多條SQL語句,實現數據庫事務。  /// </summary>  /// <param name="SQLStringList">SQL語句的哈希表(key為sql語句,value是該語句的SQLiteParameter[])</param>  public static void ExecuteSqlTran(Hashtable SQLStringList)  {   using (SQLiteConnection conn = new SQLiteConnection(connectionString))   {    conn.Open();    using (SQLiteTransaction trans = conn.BeginTransaction())    {     SQLiteCommand cmd = new SQLiteCommand();     try     {      //循環      foreach (DictionaryEntry myDE in SQLStringList)      {       string cmdText = myDE.Key.ToString();       SQLiteParameter[] cmdParms = (SQLiteParameter[])myDE.Value;       PrepareCommand(cmd, conn, trans, cmdText, cmdParms);       int val = cmd.ExecuteNonQuery();       cmd.Parameters.Clear();       trans.Commit();      }     }     catch     {      trans.Rollback();      throw;     }    }   }  }  /// <summary>  /// 執行一條計算查詢結果語句,返回查詢結果(object)。  /// </summary>  /// <param name="SQLString">計算查詢結果語句</param>  /// <returns>查詢結果(object)</returns>  public static object GetSingle(string SQLString, params SQLiteParameter[] cmdParms)  {   using (SQLiteConnection connection = new SQLiteConnection(connectionString))   {    using (SQLiteCommand cmd = new SQLiteCommand())    {     try     {      PrepareCommand(cmd, connection, null, SQLString, cmdParms);      object obj = cmd.ExecuteScalar();      cmd.Parameters.Clear();      if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))      {       return null;      }      else      {       return obj;      }     }     catch (System.Data.SQLite.SQLiteException e)     {      throw new Exception(e.Message);     }    }   }  }  /// <summary>  /// 執行查詢語句,返回SQLiteDataReader  /// </summary>  /// <param name="strSQL">查詢語句</param>  /// <returns>SQLiteDataReader</returns>  public static SQLiteDataReader ExecuteReader(string SQLString, params SQLiteParameter[] cmdParms)  {   SQLiteConnection connection = new SQLiteConnection(connectionString);   SQLiteCommand cmd = new SQLiteCommand();   try   {    PrepareCommand(cmd, connection, null, SQLString, cmdParms);    SQLiteDataReader myReader = cmd.ExecuteReader();    cmd.Parameters.Clear();    return myReader;   }   catch (System.Data.SQLite.SQLiteException e)   {    throw new Exception(e.Message);   }  }  /// <summary>  /// 執行查詢語句,返回DataSet  /// </summary>  /// <param name="SQLString">查詢語句</param>  /// <returns>DataSet</returns>  public static DataSet Query(string SQLString, params SQLiteParameter[] cmdParms)  {   using (SQLiteConnection connection = new SQLiteConnection(connectionString))   {    SQLiteCommand cmd = new SQLiteCommand();    PrepareCommand(cmd, connection, null, SQLString, cmdParms);    using (SQLiteDataAdapter da = new SQLiteDataAdapter(cmd))    {     DataSet ds = new DataSet();     try     {      da.Fill(ds, "ds");      cmd.Parameters.Clear();     }     catch (System.Data.SQLite.SQLiteException ex)     {      throw new Exception(ex.Message);     }     return ds;    }   }  }  private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, SQLiteTransaction trans, string cmdText, SQLiteParameter[] cmdParms)  {   if (conn.State != ConnectionState.Open)    conn.Open();   cmd.Connection = conn;   cmd.CommandText = cmdText;   if (trans != null)    cmd.Transaction = trans;   cmd.CommandType = CommandType.Text;//cmdType;   if (cmdParms != null)   {    foreach (SQLiteParameter parm in cmdParms)     cmd.Parameters.Add(parm);   }  }  #endregion }}

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内精品久久久久久久久| 国产精品欧美风情| 亚洲色图17p| 欧美成人精品在线播放| 亚洲日本成人女熟在线观看| 成人a免费视频| 亚洲男人天堂九九视频| 亚洲欧美中文日韩v在线观看| 久久久久久久久久久网站| 日韩av一卡二卡| 欧美高跟鞋交xxxxxhd| 欧美性受xxxx白人性爽| 午夜精品一区二区三区在线视| 亚洲第一网站免费视频| 精品亚洲一区二区三区在线播放| 亚洲成人精品视频在线观看| 伊人久久久久久久久久久久久| 国产精品久久99久久| 8x拔播拔播x8国产精品| 久久久中精品2020中文| 亚洲精品欧美日韩专区| 91精品国产91久久久久久最新| 欧美最猛性xxxxx(亚洲精品)| 午夜精品久久久久久99热| 在线日韩av观看| 91免费观看网站| 九九久久精品一区| 国产日韩换脸av一区在线观看| 一区二区三区视频观看| 国产精品一区二区性色av| 久久久久久久久久久免费| 国产精品久久电影观看| 日本精品久久中文字幕佐佐木| 精品国产欧美一区二区三区成人| 欧美裸身视频免费观看| 亚洲经典中文字幕| 亚洲va国产va天堂va久久| 国产视频在线一区二区| 精品成人国产在线观看男人呻吟| 国产97人人超碰caoprom| 亚洲自拍偷拍色片视频| 亚洲国产成人精品电影| 亚洲成人黄色网址| 国产精品电影一区| 国产精品成人久久久久| 欧美精品免费在线| 亚洲人免费视频| 欧美孕妇与黑人孕交| 精品国产欧美一区二区五十路| 九九精品在线播放| 伊人久久精品视频| 国内精品久久久久伊人av| 国产97在线亚洲| 日韩一中文字幕| 国内精品伊人久久| 国产精品自拍视频| 日韩av电影免费观看高清| 欧美性色xo影院| 色综合久久久888| 久久久久久久一区二区三区| 久久精品国产精品亚洲| 亚洲电影免费观看高清完整版在线观看| 亚洲欧美精品一区二区| 另类天堂视频在线观看| 亚洲а∨天堂久久精品9966| 亚洲精品免费在线视频| 国产精品亚洲аv天堂网| 国产精品免费久久久久久| 欧美性猛交xxxx富婆弯腰| 欧美高清一级大片| 国产精品高清免费在线观看| 欧美激情一二区| 国产精品视频白浆免费视频| 91精品国产乱码久久久久久久久| 国产精品高潮呻吟久久av野狼| 欧美精品一区在线播放| 亚洲自拍在线观看| 国产精品777| 欧美国产日产韩国视频| 国产97人人超碰caoprom| 亚洲美女av网站| 成人国产亚洲精品a区天堂华泰| 欧美在线免费观看| 欧美精品18videos性欧| 欧美成人免费全部观看天天性色| 欧美性生交xxxxx久久久| 91亚洲精华国产精华| 亚洲国产一区自拍| 亚洲新声在线观看| 欧美午夜激情在线| 一道本无吗dⅴd在线播放一区| 亚洲午夜久久久影院| 亚洲伊人成综合成人网| 国产在线999| 91精品国产九九九久久久亚洲| 国产精品一香蕉国产线看观看| 亚洲美女www午夜| 久久理论片午夜琪琪电影网| 久久精品亚洲国产| 伊人伊成久久人综合网站| 亚洲自拍偷拍第一页| 日韩欧美中文在线| 欧美尺度大的性做爰视频| 日韩av成人在线观看| 国产精品99久久久久久久久久久久| 在线观看亚洲视频| 国产精品久久久久福利| 免费不卡欧美自拍视频| 91日韩在线播放| 欧美激情在线观看| 亲爱的老师9免费观看全集电视剧| 成人情趣片在线观看免费| 国产精品∨欧美精品v日韩精品| 精品国产一区二区三区四区在线观看| 欧美精品videos性欧美| 亚洲自拍偷拍第一页| 国产精欧美一区二区三区| 亚洲欧美一区二区三区情侣bbw| 91精品国产色综合久久不卡98| 55夜色66夜色国产精品视频| 成人激情视频在线| 欧美亚洲另类视频| 欧美日韩成人在线播放| 久久伊人精品天天| 在线播放国产一区中文字幕剧情欧美| 97国产真实伦对白精彩视频8| 国产成人精品亚洲精品| 日韩精品免费一线在线观看| 久久免费视频网站| 狠狠色狠狠色综合日日小说| 成人写真福利网| 韩国三级电影久久久久久| 久久夜色精品亚洲噜噜国产mv| 中文字幕久久久av一区| 亚洲欧美日本伦理| 91精品久久久久久久久久入口| 午夜精品一区二区三区在线视频| 97超碰蝌蚪网人人做人人爽| 日韩av123| 亚洲精品国产拍免费91在线| 久久精品视频在线播放| 久久久久一本一区二区青青蜜月| 九九精品视频在线观看| 日韩中文综合网| 欧美亚洲激情视频| 精品久久久久久久中文字幕| 91精品国产91久久久久久不卡| 伊人久久综合97精品| 91在线色戒在线| 国产日韩欧美在线播放| 国产亚洲日本欧美韩国| 国产精品18久久久久久麻辣| 久久久久久18| 亚洲精品久久久久| 亚洲精品色婷婷福利天堂| 欧美成人一二三| 欧美激情xxxx性bbbb| 欧美一级高清免费| 色视频www在线播放国产成人| 欧美成人精品影院| 狠狠色噜噜狠狠狠狠97| 91精品在线一区| 成人网在线免费观看| 91国产视频在线|