SQLiteHelper class:
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.OleDb; using System.Data.SQLite; using System.Windows.Forms; namespace TestSQLite { public class SqliteHelper { //连接字符串 private static string str ="Data source="+ AppDomain.CurrentDomain.BaseDirectory + "\\DATA.db"; /// <summary> /// 增删改 /// 20180723 /// </summary> /// <param name="sql">sql语句</param> /// <param name="param">sql参数</param> /// <returns>受影响的行数</returns> public static int ExecuteNonQuery(string sql, params SQLiteParameter[] param) { try { using (SQLiteConnection con = new SQLiteConnection(str)) { using (SQLiteCommand cmd = new SQLiteCommand(sql, con)) { con.Open(); if (param != null) { cmd.Parameters.AddRange(param); } string sql2 = cmd.CommandText; //con.Close(); the cmd.ExecuteNonQuery return (); } } } the catch (SQLiteException SE) { return 0; } } /// <Summary> /// CRUD /// 20,180,723 /// </ Summary> /// <param name = "sql"> sql statement </ param> /// <param name = "param"> SQL parameters </ param> /// <Returns> number of rows affected </ returns> public static int ExecuteNonQuery(string sql) { try { using (SQLiteConnection con = new SQLiteConnection(str)) { using (SQLiteCommand cmd = new SQLiteCommand(sql, con)) { con.Open(); string sql2 = cmd.CommandText; con.Close(); return cmd.ExecuteNonQuery(); } } } catch (SQLiteException se) { return 0; } } /// <summary> /// 查询 /// 20180723 /// </summary> /// <param name="sql">sql语句</param> /// <param name="param">sql参数</param> /// <returns>The first line of the first column </ returns> public static object ExecuteScalar(string sql) { try { using (SQLiteConnection con = new SQLiteConnection(str)) { using (SQLiteCommand cmd = new SQLiteCommand(con)) { con.Open(); cmd.CommandText = sql; return cmd.ExecuteScalar(); } } } catch(Exception ex){ MessageBox.Show(ex.Message ); return null; } } /// <summary> /// 查询 /// 20180723 /// </summary> /// <param name="sql">sql语句</param> /// <param name="param">sql参数</param> /// <returns>首行首列</returns> public static object ExecuteScalar(string sql, params SQLiteParameter[] param) { using (SQLiteConnection con = new SQLiteConnection(str)) { using (SQLiteCommand cmd = new SQLiteCommand(sql,with)) con.Open (); { if (param != null) { cmd.Parameters.AddRange(param); } return cmd.ExecuteScalar(); } } } /// <summary> /// 多行查询 /// 20180723 /// </summary> /// <param name="sql">sql语句</param> /// <param name="param">sql参数</param> /// <returns>SQLiteDateReader</returns> public static SQLiteDataReader ExecuteReader(string sql, params SQLiteParameter[] param) { using (SQLiteConnection con = new SQLiteConnection(str)) { using (SQLiteCommand cmd = new SQLiteCommand(sql,with)) { if (param != null) { cmd.Parameters.AddRange(param); } try { con.Open(); return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection); } catch (Exception ex) { con.Close(); con.Dispose(); throw ex; } } } } /// <summary> /// 查询多行数据 /// 20180723 /// </summary> /// <param name="sql">sql语句</param> /// <param name="param">sql参数</param> /// <returns>一个表</returns> public static DataTable ExecuteTable(string sql, params SQLiteParameter[] param) { DataTable dt = new DataTable(); using (SQLiteDataAdapter sda = new SQLiteDataAdapter(sql, str)) { if (param != null) { sda.SelectCommand.Parameters.AddRange(param); } sda.Fill(dt); } return dt; /// 20180725 /// data insertion } /// <summary> /// </ Summary> /// <param name = "tbName"> table </ param> /// <param name = "The insertData"> data dictionary to be inserted </ param> / // <returns> number of rows affected </ Returns> public static int executelnsert (String tbName, the Dictionary <String, String> The insertData) { String Point = ""; // delimiter (,) String keyStr = ""; / / field name string concatenation string valueStr = ""; // string concatenation values List <SQLiteParameter> param = new new List <SQLiteParameter> (); the foreach (string Key in insertData.Keys) { keyStr string.Format + = ( "{0} `{1}`", point, key); + = string.Format valueStr ( "@ {{0}}. 1", Point, Key); /// <Returns> number of rows affected </returns> ); param.Add(new SQLiteParameter("@" + key, insertData[key])); point = ","; } string sql = string.Format("INSERT INTO `{0}`({1}) VALUES({2})", tbName, keyStr, valueStr); //return sql; return ExecuteNonQuery(sql, param.ToArray()); } /// <summary> /// 执行Update语句 /// 20180725 /// </summary> /// <param name="tbName">表名</param> /// <param name="where">更新条件:id=1</param> /// <param name="insertData">需要更新的数据</param> public static int ExecuteUpdate(string tbName, string where, Dictionary<String, String>The insertData) String Point = ""; // delimiter (,) { string kvStr = "";//键值对拼接字符串(Id=@Id) List<SQLiteParameter> param = new List<SQLiteParameter>(); foreach (string key in insertData.Keys) { kvStr += string.Format("{0} {1}=@{2}", point, key, key); param.Add(new SQLiteParameter("@" + key, insertData[key])); point = ","; } string sql = string.Format("UPDATE `{0}` SET {1} WHERE {2}", tbName, kvStr, where); return ExecuteNonQuery(sql, param.ToArray()); } /// <summary> /// 查询 /// 20180723 /// </summary> /// <param name = "sql"> sql statement </ param> /// <param name="param">sql参数</param> /// <returns>首行首列</returns> public static DataTable GetDataTable(string sql) { try { using (SQLiteConnection con = new SQLiteConnection(str)) { using (SQLiteCommand cmd = new SQLiteCommand(sql , con)) { con.Open(); SQLiteDataAdapter ad = new SQLiteDataAdapter(cmd); DataTable tb = new DataTable(); ad.Fill(tb); con.Close(); return tb; } } } catch (Exception ex) { MessageBox.Show(ex.Message); return null; } } } }
Test:
//see one value where ......... MessageBox.Show("" + SqliteHelper.ExecuteScalar("select uid from members where uid<>''")); //see sql create syntax DataTable tb = SqliteHelper.GetDataTable("select * from sqlite_master where name = 'members'"); MessageBox.Show("" + tb.Rows[0]["sql"]); //or: //string syntax = "" + SqliteHelper.ExecuteScalar("select sql from sqlite_master where name = 'members'"); //MessageBox.Show(syntax); //see if column exists in table 'members' bool hasCol = int.Parse("" + SqliteHelper.ExecuteScalar("select count(name) from sqlite_master where name = 'members' and sql like '%sendAccount%'")) > 0; if (!hasCol) { //add column: ALTER TABLE table-name ADD COLUMN column-name column-type SqliteHelper.ExecuteScalar("alter table members add COLUMN sendAccount varchar(20)"); //alter table student drop column name // 该行在SQlite中不能用,SQlite不支持drop //SqliteHelper.ExecuteScalar("alter table members drop sendAccount33"); } //drop table if exists A string s = "" + SqliteHelper.ExecuteScalar("drop table if exists members2"); MessageBox.Show(s);
Reference: https: //blog.csdn.net/wuyou1336/article/details/53770799