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;
}
}
}
}