最近项目上要使用SQLite数据库,不怕大伙笑话毕业四年多了,一直使用Oracle或者MySQL或者SQLServer,但是真的是没有用过SQLite数据库,据说非常轻量级,但是真没有用过,于是网上大概搜索下,例子比较多,但是么有一个完整的,即使有,也五花八门。。看的人头晕,可能对于他们大神来讲这都太简单了,算求了更新一篇,新来的小伙伴请看下文,大神你就直接飘过吧!

本例子运行效果

正式开始吧

1.SQLite的下载安装

自然官网下载对应版本即可,我这里下载的是  Precompiled Binaries for 32-bit Windows (.NET Framework 4.0)  不愿意下载的 可以直接使用我下载过的  点击这里下载

2.减压找出我们所需要的库文件   这里我们只需要俩个文件下图所示

3.下载一个数据库管理系统来创建数据库

我是用的是SQLiteStudio3.1.1版本  自己下载吧  下载地址:https://sqlitestudio.pl/index.rvt?act=download

4.创建数据库以及表

这里创建一个简单的表 UserInfo  完了代码中会有这个数据库 在Debug\bin目录下

SQLite数据库文件就一个后缀为.db的文件,就没了。。

通过SQLiteStudio打开该数据库

5.开始使用大伙所熟悉的VS了创建相关类

userinfo的Mode类

 1  /// <summary>2     /// UserInfo:实体类(属性说明自动提取数据库字段的描述信息)3     /// </summary>4     [Serializable]5     public partial class UserInfo6     {7         public UserInfo()8         { }9         #region Model
10         private int _id;
11         private string _username;
12         private string _pwd;
13         private int? _age;
14         /// <summary>
15         ///
16         /// </summary>
17         public int ID
18         {
19             set { _id = value; }
20             get { return _id; }
21         }
22         /// <summary>
23         ///
24         /// </summary>
25         public string UserName
26         {
27             set { _username = value; }
28             get { return _username; }
29         }
30         /// <summary>
31         ///
32         /// </summary>
33         public string Pwd
34         {
35             set { _pwd = value; }
36             get { return _pwd; }
37         }
38         /// <summary>
39         ///
40         /// </summary>
41         public int? Age
42         {
43             set { _age = value; }
44             get { return _age; }
45         }
46         #endregion Model
47
48     }

UserInfo 的Dal类

  1     /// <summary>2     /// 数据访问类:UserInfo3     /// </summary>4     public partial class UserInfo5     {6         public UserInfo()7         { }8         #region  BasicMethod9 10         /// <summary>11         /// 得到最大ID12         /// </summary>13         public int GetMaxId()14         {15             return DbHelperSQLite.GetMaxID("ID", "UserInfo");16         }17 18         /// <summary>19         /// 是否存在该记录20         /// </summary>21         public bool Exists(int ID)22         {23             StringBuilder strSql = new StringBuilder();24             strSql.Append("select count(1) from UserInfo");25             strSql.Append(" where ID=@ID ");26             SQLiteParameter[] parameters = {27                     new SQLiteParameter("@ID", DbType.Int32,8)          };28             parameters[0].Value = ID;29 30             return DbHelperSQLite.Exists(strSql.ToString(), parameters);31         }32 33 34         /// <summary>35         /// 增加一条数据36         /// </summary>37         public bool Add(Model.UserInfo model)38         {39             StringBuilder strSql = new StringBuilder();40             strSql.Append("insert into UserInfo(");41             strSql.Append("UserName,Pwd,Age)");42             strSql.Append(" values (");43             strSql.Append("@UserName,@Pwd,@Age)");44             SQLiteParameter[] parameters = {45                     new SQLiteParameter("@UserName", DbType.String,50),46                     new SQLiteParameter("@Pwd", DbType.String,25),47                     new SQLiteParameter("@Age", DbType.Int32,8)};48             parameters[0].Value = model.UserName;49             parameters[1].Value = model.Pwd;50             parameters[2].Value = model.Age;51 52             int rows = DbHelperSQLite.ExecuteSql(strSql.ToString(), parameters);53             if (rows > 0)54             {55                 return true;56             }57             else58             {59                 return false;60             }61         }62         /// <summary>63         /// 更新一条数据64         /// </summary>65         public bool Update(Model.UserInfo model)66         {67             StringBuilder strSql = new StringBuilder();68             strSql.Append("update UserInfo set ");69             strSql.Append("UserName=@UserName,");70             strSql.Append("Pwd=@Pwd,");71             strSql.Append("Age=@Age");72             strSql.Append(" where ID=@ID ");73             SQLiteParameter[] parameters = {74                     new SQLiteParameter("@UserName", DbType.String,50),75                     new SQLiteParameter("@Pwd", DbType.String,25),76                     new SQLiteParameter("@Age", DbType.Int32,8),77                     new SQLiteParameter("@ID", DbType.Int32,8)};78             parameters[0].Value = model.UserName;79             parameters[1].Value = model.Pwd;80             parameters[2].Value = model.Age;81             parameters[3].Value = model.ID;82 83             int rows = DbHelperSQLite.ExecuteSql(strSql.ToString(), parameters);84             if (rows > 0)85             {86                 return true;87             }88             else89             {90                 return false;91             }92         }93 94         /// <summary>95         /// 删除一条数据96         /// </summary>97         public bool Delete(int ID)98         {99
100             StringBuilder strSql = new StringBuilder();
101             strSql.Append("delete from UserInfo ");
102             strSql.Append(" where ID=@ID ");
103             SQLiteParameter[] parameters = {
104                     new SQLiteParameter("@ID", DbType.Int32,8)          };
105             parameters[0].Value = ID;
106
107             int rows = DbHelperSQLite.ExecuteSql(strSql.ToString(), parameters);
108             if (rows > 0)
109             {
110                 return true;
111             }
112             else
113             {
114                 return false;
115             }
116         }
117         /// <summary>
118         /// 批量删除数据
119         /// </summary>
120         public bool DeleteList(string IDlist)
121         {
122             StringBuilder strSql = new StringBuilder();
123             strSql.Append("delete from UserInfo ");
124             strSql.Append(" where ID in (" + IDlist + ")  ");
125             int rows = DbHelperSQLite.ExecuteSql(strSql.ToString());
126             if (rows > 0)
127             {
128                 return true;
129             }
130             else
131             {
132                 return false;
133             }
134         }
135
136
137         /// <summary>
138         /// 得到一个对象实体
139         /// </summary>
140         public Model.UserInfo GetModel(int ID)
141         {
142
143             StringBuilder strSql = new StringBuilder();
144             strSql.Append("select ID,UserName,Pwd,Age from UserInfo ");
145             strSql.Append(" where ID=@ID ");
146             SQLiteParameter[] parameters = {
147                     new SQLiteParameter("@ID", DbType.Int32,8)          };
148             parameters[0].Value = ID;
149
150             Model.UserInfo model = new Model.UserInfo();
151             DataSet ds = DbHelperSQLite.Query(strSql.ToString(), parameters);
152             if (ds.Tables[0].Rows.Count > 0)
153             {
154                 return DataRowToModel(ds.Tables[0].Rows[0]);
155             }
156             else
157             {
158                 return null;
159             }
160         }
161
162
163         /// <summary>
164         /// 得到一个对象实体
165         /// </summary>
166         public Model.UserInfo DataRowToModel(DataRow row)
167         {
168             Model.UserInfo model = new Model.UserInfo();
169             if (row != null)
170             {
171                 if (row["ID"] != null && row["ID"].ToString() != "")
172                 {
173                     model.ID = int.Parse(row["ID"].ToString());
174                 }
175                 if (row["UserName"] != null)
176                 {
177                     model.UserName = row["UserName"].ToString();
178                 }
179                 if (row["Pwd"] != null)
180                 {
181                     model.Pwd = row["Pwd"].ToString();
182                 }
183                 if (row["Age"] != null && row["Age"].ToString() != "")
184                 {
185                     model.Age = int.Parse(row["Age"].ToString());
186                 }
187             }
188             return model;
189         }
190
191         /// <summary>
192         /// 获得数据列表
193         /// </summary>
194         public DataSet GetList(string strWhere)
195         {
196             StringBuilder strSql = new StringBuilder();
197             strSql.Append("select ID,UserName,Pwd,Age ");
198             strSql.Append(" FROM UserInfo ");
199             if (strWhere.Trim() != "")
200             {
201                 strSql.Append(" where " + strWhere);
202             }
203             return DbHelperSQLite.Query(strSql.ToString());
204         }
205
206         /// <summary>
207         /// 获取记录总数
208         /// </summary>
209         public int GetRecordCount(string strWhere)
210         {
211             StringBuilder strSql = new StringBuilder();
212             strSql.Append("select count(1) FROM UserInfo ");
213             if (strWhere.Trim() != "")
214             {
215                 strSql.Append(" where " + strWhere);
216             }
217             object obj = DbHelperSQLite.GetSingle(strSql.ToString());
218             if (obj == null)
219             {
220                 return 0;
221             }
222             else
223             {
224                 return Convert.ToInt32(obj);
225             }
226         }
227         /// <summary>
228         /// 分页获取数据列表
229         /// </summary>
230         public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
231         {
232             StringBuilder strSql = new StringBuilder();
233             strSql.Append("SELECT * FROM ( ");
234             strSql.Append(" SELECT ROW_NUMBER() OVER (");
235             if (!string.IsNullOrEmpty(orderby.Trim()))
236             {
237                 strSql.Append("order by T." + orderby);
238             }
239             else
240             {
241                 strSql.Append("order by T.ID desc");
242             }
243             strSql.Append(")AS Row, T.*  from UserInfo T ");
244             if (!string.IsNullOrEmpty(strWhere.Trim()))
245             {
246                 strSql.Append(" WHERE " + strWhere);
247             }
248             strSql.Append(" ) TT");
249             strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
250             return DbHelperSQLite.Query(strSql.ToString());
251         }
252
253         #endregion  BasicMethod
254     }

Userinfo的BLL类

  1     public partial class UserInfo2     {3         private readonly DAL.UserInfo dal = new DAL.UserInfo();4         public UserInfo()5         { }6         #region  BasicMethod7 8         /// <summary>9         /// 得到最大ID10         /// </summary>11         public int GetMaxId()12         {13             return dal.GetMaxId();14         }15 16         /// <summary>17         /// 是否存在该记录18         /// </summary>19         public bool Exists(int ID)20         {21             return dal.Exists(ID);22         }23 24         /// <summary>25         /// 增加一条数据26         /// </summary>27         public bool Add(Model.UserInfo model)28         {29             return dal.Add(model);30         }31 32         /// <summary>33         /// 更新一条数据34         /// </summary>35         public bool Update(Model.UserInfo model)36         {37             return dal.Update(model);38         }39 40         /// <summary>41         /// 删除一条数据42         /// </summary>43         public bool Delete(int ID)44         {45 46             return dal.Delete(ID);47         }48         /// <summary>49         /// 删除一条数据50         /// </summary>51         public bool DeleteList(string IDlist)52         {53             return dal.DeleteList(IDlist);54         }55 56         /// <summary>57         /// 得到一个对象实体58         /// </summary>59         public Model.UserInfo GetModel(int ID)60         {61 62             return dal.GetModel(ID);63         }64 65         / <summary>66         / 得到一个对象实体,从缓存中67         / </summary>68         //public Model.UserInfo GetModelByCache(int ID)69         //{70 71         //    string CacheKey = "UserInfoModel-" + ID;72         //    object objModel = Common.DataCache.GetCache(CacheKey);73         //    if (objModel == null)74         //    {75         //        try76         //        {77         //            objModel = dal.GetModel(ID);78         //            if (objModel != null)79         //            {80         //                int ModelCache = Maticsoft.Common.ConfigHelper.GetConfigInt("ModelCache");81         //                Maticsoft.Common.DataCache.SetCache(CacheKey, objModel, DateTime.Now.AddMinutes(ModelCache), TimeSpan.Zero);82         //            }83         //        }84         //        catch { }85         //    }86         //    return (Maticsoft.Model.UserInfo)objModel;87         //}88 89         /// <summary>90         /// 获得数据列表91         /// </summary>92         public DataSet GetList(string strWhere)93         {94             return dal.GetList(strWhere);95         }96         /// <summary>97         /// 获得数据列表98         /// </summary>99         public List<Model.UserInfo> GetModelList(string strWhere)
100         {
101             DataSet ds = dal.GetList(strWhere);
102             return DataTableToList(ds.Tables[0]);
103         }
104         /// <summary>
105         /// 获得数据列表
106         /// </summary>
107         public List<Model.UserInfo> DataTableToList(DataTable dt)
108         {
109             List<Model.UserInfo> modelList = new List<Model.UserInfo>();
110             int rowsCount = dt.Rows.Count;
111             if (rowsCount > 0)
112             {
113                 Model.UserInfo model;
114                 for (int n = 0; n < rowsCount; n++)
115                 {
116                     model = dal.DataRowToModel(dt.Rows[n]);
117                     if (model != null)
118                     {
119                         modelList.Add(model);
120                     }
121                 }
122             }
123             return modelList;
124         }
125
126         /// <summary>
127         /// 获得数据列表
128         /// </summary>
129         public DataSet GetAllList()
130         {
131             return GetList("");
132         }
133
134         /// <summary>
135         /// 分页获取数据列表
136         /// </summary>
137         public int GetRecordCount(string strWhere)
138         {
139             return dal.GetRecordCount(strWhere);
140         }
141         /// <summary>
142         /// 分页获取数据列表
143         /// </summary>
144         public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
145         {
146             return dal.GetListByPage(strWhere, orderby, startIndex, endIndex);
147         }
148         /// <summary>
149         /// 分页获取数据列表
150         /// </summary>
151         //public DataSet GetList(int PageSize,int PageIndex,string strWhere)
152         //{
153         //return dal.GetList(PageSize,PageIndex,strWhere);
154         //}
155
156         #endregion  BasicMethod
157         #region  ExtensionMethod
158
159         #endregion  ExtensionMethod
160     }

创建SQLite帮助类

  1     /// <summary>2     /// 数据访问基础类(基于SQLite)3     /// 可以用户可以修改满足自己项目的需要。4     /// </summary>5     public abstract class DbHelperSQLite6     {7         //数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库.        8         public static string connectionString = CreateConnectionString();9         public DbHelperSQLite()10         {11         }12         private static string CreateConnectionString()13         {14 15             string dbName = ConfigurationManager.AppSettings["SQLiteDB"];16             string sqlLitePath = "data source=" + System.Environment.CurrentDirectory+"\\"+dbName + ";version=3;";17             return sqlLitePath;18         }19 20         #region 公用方法21 22         public static int GetMaxID(string FieldName, string TableName)23         {24             string strsql = "select max(" + FieldName + ")+1 from " + TableName;25             object obj = GetSingle(strsql);26             if (obj == null)27             {28                 return 1;29             }30             else31             {32                 return int.Parse(obj.ToString());33             }34         }35         public static bool Exists(string strSql)36         {37             object obj = GetSingle(strSql);38             int cmdresult;39             if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))40             {41                 cmdresult = 0;42             }43             else44             {45                 cmdresult = int.Parse(obj.ToString());46             }47             if (cmdresult == 0)48             {49                 return false;50             }51             else52             {53                 return true;54             }55         }56         public static bool Exists(string strSql, params SQLiteParameter[] cmdParms)57         {58             object obj = GetSingle(strSql, cmdParms);59             int cmdresult;60             if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))61             {62                 cmdresult = 0;63             }64             else65             {66                 cmdresult = int.Parse(obj.ToString());67             }68             if (cmdresult == 0)69             {70                 return false;71             }72             else73             {74                 return true;75             }76         }77 78         #endregion79 80         #region  执行简单SQL语句81 82         /// <summary>83         /// 执行SQL语句,返回影响的记录数84         /// </summary>85         /// <param name="SQLString">SQL语句</param>86         /// <returns>影响的记录数</returns>87         public static int ExecuteSql(string SQLString)88         {89             using (SQLiteConnection connection = new SQLiteConnection(connectionString))90             {91                 using (SQLiteCommand cmd = new SQLiteCommand(SQLString, connection))92                 {93                     try94                     {95                         connection.Open();96                         int rows = cmd.ExecuteNonQuery();97                         return rows;98                     }99                     catch (System.Data.SQLite.SQLiteException E)
100                     {
101                         connection.Close();
102                         throw new Exception(E.Message);
103                     }
104                 }
105             }
106         }
107
108         /// <summary>
109         /// 执行多条SQL语句,实现数据库事务。
110         /// </summary>
111         /// <param name="SQLStringList">多条SQL语句</param>
112         public static void ExecuteSqlTran(ArrayList SQLStringList)
113         {
114             using (SQLiteConnection conn = new SQLiteConnection(connectionString))
115             {
116                 conn.Open();
117                 SQLiteCommand cmd = new SQLiteCommand();
118                 cmd.Connection = conn;
119                 SQLiteTransaction tx = conn.BeginTransaction();
120                 cmd.Transaction = tx;
121                 try
122                 {
123                     for (int n = 0; n < SQLStringList.Count; n++)
124                     {
125                         string strsql = SQLStringList[n].ToString();
126                         if (strsql.Trim().Length > 1)
127                         {
128                             cmd.CommandText = strsql;
129                             cmd.ExecuteNonQuery();
130                         }
131                     }
132                     tx.Commit();
133                 }
134                 catch (System.Data.SQLite.SQLiteException E)
135                 {
136                     tx.Rollback();
137                     throw new Exception(E.Message);
138                 }
139             }
140         }
141         /// <summary>
142         /// 执行带一个存储过程参数的的SQL语句。
143         /// </summary>
144         /// <param name="SQLString">SQL语句</param>
145         /// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
146         /// <returns>影响的记录数</returns>
147         public static int ExecuteSql(string SQLString, string content)
148         {
149             using (SQLiteConnection connection = new SQLiteConnection(connectionString))
150             {
151                 SQLiteCommand cmd = new SQLiteCommand(SQLString, connection);
152                 SQLiteParameter myParameter = new SQLiteParameter("@content", DbType.String);
153                 myParameter.Value = content;
154                 cmd.Parameters.Add(myParameter);
155                 try
156                 {
157                     connection.Open();
158                     int rows = cmd.ExecuteNonQuery();
159                     return rows;
160                 }
161                 catch (System.Data.SQLite.SQLiteException E)
162                 {
163                     throw new Exception(E.Message);
164                 }
165                 finally
166                 {
167                     cmd.Dispose();
168                     connection.Close();
169                 }
170             }
171         }
172         /// <summary>
173         /// 向数据库里插入图像格式的字段(和上面情况类似的另一种实例)
174         /// </summary>
175         /// <param name="strSQL">SQL语句</param>
176         /// <param name="fs">图像字节,数据库的字段类型为image的情况</param>
177         /// <returns>影响的记录数</returns>
178         public static int ExecuteSqlInsertImg(string strSQL, byte[] fs)
179         {
180             using (SQLiteConnection connection = new SQLiteConnection(connectionString))
181             {
182                 SQLiteCommand cmd = new SQLiteCommand(strSQL, connection);
183                 SQLiteParameter myParameter = new SQLiteParameter("@fs", DbType.Binary);
184                 myParameter.Value = fs;
185                 cmd.Parameters.Add(myParameter);
186                 try
187                 {
188                     connection.Open();
189                     int rows = cmd.ExecuteNonQuery();
190                     return rows;
191                 }
192                 catch (System.Data.SQLite.SQLiteException E)
193                 {
194                     throw new Exception(E.Message);
195                 }
196                 finally
197                 {
198                     cmd.Dispose();
199                     connection.Close();
200                 }
201             }
202         }
203
204         /// <summary>
205         /// 执行一条计算查询结果语句,返回查询结果(object)。
206         /// </summary>
207         /// <param name="SQLString">计算查询结果语句</param>
208         /// <returns>查询结果(object)</returns>
209         public static object GetSingle(string SQLString)
210         {
211             using (SQLiteConnection connection = new SQLiteConnection(connectionString))
212             {
213                 using (SQLiteCommand cmd = new SQLiteCommand(SQLString, connection))
214                 {
215                     try
216                     {
217                         connection.Open();
218                         object obj = cmd.ExecuteScalar();
219                         if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
220                         {
221                             return null;
222                         }
223                         else
224                         {
225                             return obj;
226                         }
227                     }
228                     catch (System.Data.SQLite.SQLiteException e)
229                     {
230                         connection.Close();
231                         throw new Exception(e.Message);
232                     }
233                 }
234             }
235         }
236         /// <summary>
237         /// 执行查询语句,返回SQLiteDataReader
238         /// </summary>
239         /// <param name="strSQL">查询语句</param>
240         /// <returns>SQLiteDataReader</returns>
241         public static SQLiteDataReader ExecuteReader(string strSQL)
242         {
243             SQLiteConnection connection = new SQLiteConnection(connectionString);
244             SQLiteCommand cmd = new SQLiteCommand(strSQL, connection);
245             try
246             {
247                 connection.Open();
248                 SQLiteDataReader myReader = cmd.ExecuteReader();
249                 return myReader;
250             }
251             catch (System.Data.SQLite.SQLiteException e)
252             {
253                 throw new Exception(e.Message);
254             }
255
256         }
257         /// <summary>
258         /// 执行查询语句,返回DataSet
259         /// </summary>
260         /// <param name="SQLString">查询语句</param>
261         /// <returns>DataSet</returns>
262         public static DataSet Query(string SQLString)
263         {
264             using (SQLiteConnection connection = new SQLiteConnection(connectionString))
265             {
266                 DataSet ds = new DataSet();
267                 try
268                 {
269                     connection.Open();
270                     SQLiteDataAdapter command = new SQLiteDataAdapter(SQLString, connection);
271                     command.Fill(ds, "ds");
272                 }
273                 catch (System.Data.SQLite.SQLiteException ex)
274                 {
275                     throw new Exception(ex.Message);
276                 }
277                 return ds;
278             }
279         }
280
281
282         #endregion
283
284         #region 执行带参数的SQL语句
285
286         /// <summary>
287         /// 执行SQL语句,返回影响的记录数
288         /// </summary>
289         /// <param name="SQLString">SQL语句</param>
290         /// <returns>影响的记录数</returns>
291         public static int ExecuteSql(string SQLString, params SQLiteParameter[] cmdParms)
292         {
293             using (SQLiteConnection connection = new SQLiteConnection(connectionString))
294             {
295                 using (SQLiteCommand cmd = new SQLiteCommand())
296                 {
297                     try
298                     {
299                         PrepareCommand(cmd, connection, null, SQLString, cmdParms);
300                         int rows = cmd.ExecuteNonQuery();
301                         cmd.Parameters.Clear();
302                         return rows;
303                     }
304                     catch (System.Data.SQLite.SQLiteException E)
305                     {
306                         throw new Exception(E.Message);
307                     }
308                 }
309             }
310         }
311
312
313         /// <summary>
314         /// 执行多条SQL语句,实现数据库事务。
315         /// </summary>
316         /// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的SQLiteParameter[])</param>
317         public static void ExecuteSqlTran(Hashtable SQLStringList)
318         {
319             using (SQLiteConnection conn = new SQLiteConnection(connectionString))
320             {
321                 conn.Open();
322                 using (SQLiteTransaction trans = conn.BeginTransaction())
323                 {
324                     SQLiteCommand cmd = new SQLiteCommand();
325                     try
326                     {
327                         //循环
328                         foreach (DictionaryEntry myDE in SQLStringList)
329                         {
330                             string cmdText = myDE.Key.ToString();
331                             SQLiteParameter[] cmdParms = (SQLiteParameter[])myDE.Value;
332                             PrepareCommand(cmd, conn, trans, cmdText, cmdParms);
333                             int val = cmd.ExecuteNonQuery();
334                             cmd.Parameters.Clear();
335
336                             trans.Commit();
337                         }
338                     }
339                     catch
340                     {
341                         trans.Rollback();
342                         throw;
343                     }
344                 }
345             }
346         }
347
348
349         /// <summary>
350         /// 执行一条计算查询结果语句,返回查询结果(object)。
351         /// </summary>
352         /// <param name="SQLString">计算查询结果语句</param>
353         /// <returns>查询结果(object)</returns>
354         public static object GetSingle(string SQLString, params SQLiteParameter[] cmdParms)
355         {
356             using (SQLiteConnection connection = new SQLiteConnection(connectionString))
357             {
358                 using (SQLiteCommand cmd = new SQLiteCommand())
359                 {
360                     try
361                     {
362                         PrepareCommand(cmd, connection, null, SQLString, cmdParms);
363                         object obj = cmd.ExecuteScalar();
364                         cmd.Parameters.Clear();
365                         if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
366                         {
367                             return null;
368                         }
369                         else
370                         {
371                             return obj;
372                         }
373                     }
374                     catch (System.Data.SQLite.SQLiteException e)
375                     {
376                         throw new Exception(e.Message);
377                     }
378                 }
379             }
380         }
381
382         /// <summary>
383         /// 执行查询语句,返回SQLiteDataReader
384         /// </summary>
385         /// <param name="strSQL">查询语句</param>
386         /// <returns>SQLiteDataReader</returns>
387         public static SQLiteDataReader ExecuteReader(string SQLString, params SQLiteParameter[] cmdParms)
388         {
389             SQLiteConnection connection = new SQLiteConnection(connectionString);
390             SQLiteCommand cmd = new SQLiteCommand();
391             try
392             {
393                 PrepareCommand(cmd, connection, null, SQLString, cmdParms);
394                 SQLiteDataReader myReader = cmd.ExecuteReader();
395                 cmd.Parameters.Clear();
396                 return myReader;
397             }
398             catch (System.Data.SQLite.SQLiteException e)
399             {
400                 throw new Exception(e.Message);
401             }
402
403         }
404
405         /// <summary>
406         /// 执行查询语句,返回DataSet
407         /// </summary>
408         /// <param name="SQLString">查询语句</param>
409         /// <returns>DataSet</returns>
410         public static DataSet Query(string SQLString, params SQLiteParameter[] cmdParms)
411         {
412             using (SQLiteConnection connection = new SQLiteConnection(connectionString))
413             {
414                 SQLiteCommand cmd = new SQLiteCommand();
415                 PrepareCommand(cmd, connection, null, SQLString, cmdParms);
416                 using (SQLiteDataAdapter da = new SQLiteDataAdapter(cmd))
417                 {
418                     DataSet ds = new DataSet();
419                     try
420                     {
421                         da.Fill(ds, "ds");
422                         cmd.Parameters.Clear();
423                     }
424                     catch (System.Data.SQLite.SQLiteException ex)
425                     {
426                         throw new Exception(ex.Message);
427                     }
428                     return ds;
429                 }
430             }
431         }
432
433
434         private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, SQLiteTransaction trans, string cmdText, SQLiteParameter[] cmdParms)
435         {
436             if (conn.State != ConnectionState.Open)
437                 conn.Open();
438             cmd.Connection = conn;
439             cmd.CommandText = cmdText;
440             if (trans != null)
441                 cmd.Transaction = trans;
442             cmd.CommandType = CommandType.Text;//cmdType;
443             if (cmdParms != null)
444             {
445                 foreach (SQLiteParameter parm in cmdParms)
446                     cmd.Parameters.Add(parm);
447             }
448         }
449
450         #endregion
451
452
453
454     }

6.创建一个WinForm窗体用于测试

大概是这样的,我用的是VS2017

数据库配置文件新增App.config文件  其余的没有用,是Mysql的连接字符串,可以不用管。。。

窗体代码大概是这样的比较简单,只是实现简单的操作,具体细节那就交个大家了。。。

 1    public partial class Form1 : Form2     {3         public Form1()4         {5             InitializeComponent();6         }7 8 9         BLL.UserInfo bll = new BLL.UserInfo();
10
11
12         //数据库连接
13         SQLiteConnection m_dbConnection;
14         private void button1_Click(object sender, EventArgs e)
15         {
16
17             DataSet ds =  bll.GetAllList();
18
19             this.dataGridView1.DataSource = ds.Tables[0];
20
21         }
22
23         int count = 0;
24         private void button2_Click(object sender, EventArgs e)
25         {
26             count++;
27             Model.UserInfo userInfo = new Model.UserInfo();
28             userInfo.UserName = "Count" + count;
29             userInfo.Pwd = "123456";
30             userInfo.Age = count;
31
32             bll.Add(userInfo);
33
34             DataSet ds = bll.GetAllList();
35             this.dataGridView1.DataSource = ds.Tables[0];
36
37         }
38
39         private void button3_Click(object sender, EventArgs e)
40         {
41
42             Model.UserInfo userInfo = new Model.UserInfo();
43             userInfo.ID = int.Parse(this.label1.Text);
44             userInfo.UserName = this.textBox1.Text;
45             userInfo.Pwd = this.textBox2.Text;
46             userInfo.Age = int.Parse(this.textBox3.Text);
47             bll.Update(userInfo);
48
49
50             DataSet ds = bll.GetAllList();
51             this.dataGridView1.DataSource = ds.Tables[0];
52
53
54         }
55
56         private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
57         {
58             DataGridViewRow row = this.dataGridView1.CurrentRow;
59             this.label1.Text = row.Cells[0].Value.ToString();
60             this.textBox1.Text = row.Cells[1].Value.ToString();
61             this.textBox2.Text = row.Cells[2].Value.ToString();
62             this.textBox3.Text = row.Cells[3].Value.ToString();
63
64
65         }
66
67         private void button4_Click(object sender, EventArgs e)
68         {
69             bll.Delete(int.Parse(this.label1.Text));
70
71
72             DataSet ds = bll.GetAllList();
73             this.dataGridView1.DataSource = ds.Tables[0];
74         }
75
76         private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
77         {
78
79             Process.Start("IExplore", "https://www.cnblogs.com/JiYF/");
80         }
81     }

7.运行效果

8.项目结构文件

SQLite版本问题,如果你使用的32位,记得项目编译采用X86   如果你是64位则采用X64  否则会提示错误信息

C#操作SQLite数据库增、删、改、查 实例相关推荐

  1. 简单的php数据库操作类代码(增,删,改,查)

    数据库操纵基本流程为: 1.连接数据库服务器 2.选择数据库 3.执行SQL语句 4.处理结果集 5.打印操作信息 其中用到的相关函数有 •resource mysql_connect ( [stri ...

  2. Linux技术--mysql数据库增-删-改-查

    # mysql 数据库 ## 数据库的操作 ### 五个单位 * 数据库服务器   Linux或者 windows  * 数据库  * 数据表 * 数据字段 * 数据行 ### 连接数据库 ``` 1 ...

  3. Python 操作 Elasticsearch 实现 增 删 改 查

    Github 地址:https://github.com/elastic/elasticsearch-py/blob/master/docs/index.rst 官网地址:https://elasti ...

  4. android查询mysql并显示_Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解...

    本文实例讲述了Android操作SQLite数据库(增.删.改.查.分页等)及ListView显示数据的方法.分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识记录 ...

  5. 表单的增 删 改 查

    django单表操作 增 删 改 查 一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取 ...

  6. datatable更新到mysql_.NET_使用DataTable更新数据库(增,删,改),1、修改数据复制代码 代码如 - phpStudy...

    使用DataTable更新数据库(增,删,改) 1.修改数据 DataRow dr = hRDataSet.Tables["emp"].Rows.Find(textBox3.Tex ...

  7. properties(map)增.删.改.查.遍历

    import java.util.Map; import java.util.Properties; import java.util.Set;/*** properties(map)增.删.改.查. ...

  8. python学生姓名添加删除_python-函数-实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。...

    实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统. 要求1:使用一个list用于保存学生的姓名. 要求2:输入0显示所有学员信息,1代表增加,2代表删除,3代表修改,4代表查询,exit ...

  9. PySpark︱DataFrame操作指南:增/删/改/查/合并/统计与数据处理

    笔者最近需要使用pyspark进行数据整理,于是乎给自己整理一份使用指南.pyspark.dataframe跟pandas的差别还是挺大的. 文章目录 1.-------- 查 -------- -- ...

最新文章

  1. OS study plan
  2. mybatis中的TypeHandler设计与实现
  3. 悬崖边上的舞者,记7.2生产数据库灾难事件
  4. 用Canvas画圆环百分比进度条
  5. es6严格模式需要注意的地方
  6. Unity 和腾讯游戏成立联合创新实验室:从技术创新探索游戏产品新模式和概念
  7. Chpater 5 大规模MIMO信道估计与导频设计
  8. 微信小程序英语学习平台+后台管理系统
  9. python为什么会出现无响应怎么办,Python多处理中无响应进程的终止
  10. 前端食堂技术周刊第 82 期:Vue3.3、Google I/O、CSS In 2023、Remix Conf 2023、Rollup 中文文档、React 中文文档
  11. Python语言程序设计——实验八
  12. 跨源通信--postMessage用法
  13. 流式计算、实时计算和离线计算
  14. 基于中文维基百科的词向量构建及可视化
  15. XXL-Job和Elastic-job的区别
  16. DOS命令__ping
  17. C/C++FPS实战CSGO矩阵方框透视骨骼自瞄实战教程
  18. http://www.atool.org/keytype.php#0-tsina-1-53371-397232819ff9a47a7b7e80a40613cfe1
  19. 聊聊数据的分类和分级
  20. win7系统卸载360管家之后无法上网怎么回事?

热门文章

  1. 怎么获取php文件,学习猿地-php怎么获取文件修改时间?
  2. 爬虫python 科研有用吗_为什么说用python写爬虫有优势?
  3. 取两个数较小值c语言_如何提升C语言安全性,达到RUST的安全性
  4. ecm工作原理 usb_“好玩具”来了!往你的USB端口里藏入一个小开发板...
  5. JAVA复习5(集合——LinkedList)
  6. java输入键盘_java键盘输入
  7. glide缩略图存储 android,Glide 显示视频缩略图及遇到的坑
  8. python封装c++接口_使用MetaSIP自动生成SIP封装C++到Python接口
  9. oracle离线文档查dbms_Oracle的健康检查–dbms_hm的使用 | 学步园
  10. shell 获取命令执行结果_java高并发系列 第31天:获取线程执行结果,这6种方法你都知道?...