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     }
SQLiteHelper帮助类

相关文章: