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 Hydro.ConfigModel { public class SqliteHelper { //连接字符串 private static string str = "Data source=" + AppDomain.CurrentDomain.BaseDirectory + "\\DATA.db"; /// /// 增删改 /// 20180723 /// /// sql语句 /// sql参数 /// 受影响的行数 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(); return cmd.ExecuteNonQuery(); } } } catch (SQLiteException se) { return 0; } } /// /// 增删改 /// 20180723 /// /// sql语句 /// sql参数 /// 受影响的行数 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; } } /// /// 查询 /// 20180723 /// /// sql语句 /// sql参数 /// 首行首列 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; } } /// /// 查询 /// 20180723 /// /// sql语句 /// sql参数 /// 首行首列 public static object ExecuteScalar(string sql, params SQLiteParameter[] param) { using (SQLiteConnection con = new SQLiteConnection(str)) { using (SQLiteCommand cmd = new SQLiteCommand(sql, con)) { con.Open(); if (param != null) { cmd.Parameters.AddRange(param); } return cmd.ExecuteScalar(); } } } /// /// 多行查询 /// 20180723 /// /// sql语句 /// sql参数 /// SQLiteDateReader public static SQLiteDataReader ExecuteReader(string sql, params SQLiteParameter[] param) { using (SQLiteConnection con = new SQLiteConnection(str)) { using (SQLiteCommand cmd = new SQLiteCommand(sql, con)) { 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; } } } } /// /// 查询多行数据 /// 20180723 /// /// sql语句 /// sql参数 /// 一个表 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 /// /// 表名 /// 需要插入的数据字典 /// 受影响行数 public static int ExecuteInsert(string tbName, Dictionary insertData) { string point = "";//分隔符号(,) string keyStr = "";//字段名拼接字符串 string valueStr = "";//值的拼接字符串 List param = new List(); foreach (string key in insertData.Keys) { keyStr += string.Format("{0} `{1}`", point, key); valueStr += string.Format("{0} @{1}", point, key); 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()); } /// /// 执行Update语句 /// 20180725 /// /// 表名 /// 更新条件:id=1 /// 需要更新的数据 /// 受影响行数 public static int ExecuteUpdate(string tbName, string where, Dictionary insertData) { string point = "";//分隔符号(,) string kvStr = "";//键值对拼接字符串(Id=@Id) List param = new List(); 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()); } /// /// 查询 /// 20180723 /// /// sql语句 /// sql参数 /// 首行首列 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; } } } }