1 internal class SQLiteHelper : IDisposable 2 { 3 private SQLiteConnection conn = null; 4 protected SQLiteCommand cmd = null; 5 protected SQLiteDataReader sdr = null; 6 /// 7 /// 构造函数 8 /// 9 public SQLiteHelper(string connStr) 10 { 11 conn = new SQLiteConnection(connStr); 12 } 13 /// 14 /// 获取连接结果,未连接打开连接 15 /// 16 /// 连接结果 17 protected SQLiteConnection GetConn() 18 { 19 if (conn.State == ConnectionState.Closed) 20 { 21 conn.Open(); 22 } 23 return conn; 24 } 25 26 /// 27 /// 获取连接结果,未连接打开连接 28 /// 29 /// 连接结果 30 protected void Close() 31 { 32 if (conn.State == ConnectionState.Open) 33 { 34 conn.Close(); 35 } 36 } 37 38 /// 39 /// 该方法执行传入的增删改SQL语句 40 /// 41 /// 要执行的增删改SQL语句 42 /// 返回更新的记录数 43 public int ExecuteNonQuery(string sql) 44 { 45 int res; 46 try 47 { 48 cmd = new SQLiteCommand(sql, GetConn()); 49 res = cmd.ExecuteNonQuery(); 50 } 51 catch (Exception ex) 52 { 53 res = -1; 54 throw ex; 55 } 56 finally 57 { 58 if (conn.State == ConnectionState.Open) 59 { 60 conn.Close(); 61 } 62 } 63 return res; 64 } 65 /// 66 /// 执行带参数的SQL增删改语句 67 /// 68 /// SQL增删改语句 69 /// 参数集合 70 /// 返回更新的记录数 71 public int ExecuteNonQuery(string sql, SQLiteParameter[] paras) 72 { 73 int res; 74 using (cmd = new SQLiteCommand(sql, GetConn())) 75 { 76 cmd.Parameters.AddRange(paras); 77 res = cmd.ExecuteNonQuery(); 78 } 79 return res; 80 } 81 /// 82 /// 该方法执行传入的SQL查询语句 83 /// 84 /// SQL查询语句 85 /// 返回数据集合 86 public DataTable ExecuteQuery(string sql) 87 { 88 DataTable dt = new DataTable(); 89 cmd = new SQLiteCommand(sql, GetConn()); 90 using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) 91 { 92 dt.Load(sdr); 93 } 94 return dt; 95 } 96 /// 97 /// 执行带参数的SQL查询语句 98 /// 99 /// SQL查询语句 100 /// 参数集合 101 /// 返回数据集合 102 public DataTable ExecuteQuery(string sql, SQLiteParameter[] paras) 103 { 104 DataTable dt = new DataTable(); 105 cmd = new SQLiteCommand(sql, GetConn()); 106 cmd.Parameters.AddRange(paras); 107 using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) 108 { 109 dt.Load(sdr); 110 } 111 return dt; 112 } 113 114 115 /// <summary> 116 /// 反回第一行第一列 117 /// </summary> 118 /// <param name="sql"></param> 119 /// <param name="paras"></param> 120 /// <returns></returns> 121 public string GetString(string sql, SQLiteParameter[] paras) 122 { 123 DataTable dt = new DataTable(); 124 cmd = new SQLiteCommand(sql, GetConn()); 125 cmd.Parameters.AddRange(paras); 126 var reval = cmd.ExecuteScalar(); 127 return reval.ToString(); 128 } 129 /// <summary> 130 /// 反回第一行第一列 131 /// </summary> 132 /// <param name="sql"></param> 133 /// <param name="paras"></param> 134 /// <returns></returns> 135 public int GetInt(string sql, SQLiteParameter[] paras) 136 { 137 DataTable dt = new DataTable(); 138 cmd = new SQLiteCommand(sql, GetConn()); 139 cmd.Parameters.AddRange(paras); 140 var reval = cmd.ExecuteScalar(); 141 return Convert.ToInt32(reval); 142 } 143 144 /// 145 /// 执行带参数的SQL查询判断语句 146 /// 147 /// SQL查询语句 148 /// 参数集合 149 /// 返回是否为空 150 public bool BoolExecuteQuery(string sql, SQLiteParameter[] paras) 151 { 152 DataTable dt = new DataTable(); 153 cmd = new SQLiteCommand(sql, GetConn()); 154 cmd.Parameters.AddRange(paras); 155 try 156 { 157 using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) 158 { 159 dt.Load(sdr); 160 } 161 } 162 catch (Exception e) 163 { 164 throw e; 165 } 166 DataRow[] rows = dt.Select(); 167 bool temp = false; 168 if (rows.Length > 0) 169 { 170 temp = true; 171 } 172 return temp; 173 } 174 /// 175 /// 该方法执行传入的SQL查询判断语句 176 /// 177 /// SQL查询语句 178 /// 返回是否为空 179 public bool BoolExecuteQuery(string sql) 180 { 181 DataTable dt = new DataTable(); 182 cmd = new SQLiteCommand(sql, GetConn()); 183 using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) 184 { 185 dt.Load(sdr); 186 } 187 DataRow[] rows = dt.Select(); 188 bool temp = false; 189 if (rows.Length > 0) 190 { 191 temp = true; 192 } 193 return temp; 194 } 195 196 public void Dispose() 197 { 198 Close(); 199 } 200 }
相关文章: