C#封装SQLite数据库

网上有许多介绍关于SQLite数据库的,这里我就不多说了,这里主要介绍SQLite数据库在C#中的应用,它的应用主要依赖于System.Data.SQLite.dll文件,可以点击这里下载https://pan.baidu.com/s/1UQLHXHkWcfvSdui0m6q5AQ。下载完成后直接引用到自己的工程里即可。好了废话不多说,直接上代码。

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 using System.Data.SQLite;
  7 using System.IO;
  8 
  9 public class SqliteHelper
 10 {
 11         private static SqliteHelper _instance;
 12 
 13         public static SqliteHelper GetInstance()
 14         {
 15             if(null == _instance)
 16             {
 17                 _instance = new SqliteHelper();
 18             }
 19 
 20             return _instance;
 21         }
 22 
 23         /// <summary>
 24         /// 数据库连接定义
 25         /// </summary>
 26         private SQLiteConnection dbConnection;
 27 
 28         /// <summary>
 29         /// SQL命令定义
 30         /// </summary>
 31         private SQLiteCommand dbCommand;
 32 
 33         /// <summary>
 34         /// 数据读取定义
 35         /// </summary>
 36         private SQLiteDataReader dataReader;
 37 
 38          private SqliteHelper()
 39         {
 40 
 41         }   
 42 
 43         /// <summary>
 44         /// 创建数据库文件
 45         /// </summary>
 46         /// <param name="dbPath"></param>
 47         /// <returns></returns>
 48         public bool CreateDb(string dbPath)
 49         {
 50             try
 51             {
 52                 if(!File.Exists(dbPath))
 53                 {
 54                     //如果数据库文件不存在,则创建
 55                     SQLiteConnection.CreateFile(dbPath);
 56                 }          
 57                 string conDbPath = "Data Source=" + dbPath;
 58                 dbConnection = new SQLiteConnection(conDbPath);
 59                 if(null == dbConnection)
 60                 {
 61                     return false;
 62                 }
 63                 dbConnection.Open();
 64             }
 65             catch(Exception e)
 66             {
 67                 throw e;
 68             }
 69 
 70             return true;
 71         }
 72         
 73         /// <summary>
 74         /// 执行SQL命令
 75         /// </summary>
 76         /// <param name="queryString"></param>
 77         /// <returns></returns>
 78         public SQLiteDataReader ExecuteQuery(string queryString)
 79         {
 80             try
 81             {           
 82                 dbCommand = dbConnection.CreateCommand();              
 83                 dbCommand.CommandText = queryString;
 84                 dataReader = dbCommand.ExecuteReader();
 85             }
 86             catch(Exception e)
 87             {
 88                 throw e;
 89             }
 90 
 91             return dataReader;
 92         }
 93 
 94         /// <summary>
 95         /// 关闭数据库连接
 96         /// </summary>
 97         public void CloseConncetion()
 98         {
 99             //销毁Command
100             if(dbCommand != null)
101             {
102                 dbCommand.Cancel();
103             }
104             dbCommand = null;
105 
106             //销毁Reader
107             if(dataReader != null)
108             {
109                 dataReader.Close();
110             }
111             dataReader = null;
112 
113             //销毁Connection
114             if(dbConnection != null)
115             {
116                 dbConnection.Clone();
117             }
118             dbConnection = null;
119         }
120 
121         /// <summary>
122         /// 创建数据表
123         /// </summary>
124         /// <param name="tableName"></param>
125         /// <param name="colNames"></param>
126         /// <param name="colTypes"></param>
127         /// <returns></returns>
128         public SQLiteDataReader CreateTable(string tableName, 
129              string[] colNames, string[] colTypes)
130         {
131             string queryString = "CREATE TABLE IF NOT EXISTS" +" " 
132                  + tableName + "(" + colNames[0] + " " + colTypes[0];
133             for(int i = 1; i < colNames.Length; i++)
134             {
135                 queryString += "," + colNames[i] + " " + colTypes[i];
136             }
137             queryString += ")";
138 
139             return ExecuteQuery(queryString);
140         }
141 
142         /// <summary>
143         /// 读取整张数据表
144         /// </summary>
145         /// <param name="tableName"></param>
146         /// <returns></returns>
147         private SQLiteDataReader ReadFullTable(string tableName)
148         {
149             string queryString = "SELECT * FROM" + " " + tableName;
150 
151             return ExecuteQuery(queryString);
152         }
153         
154         /// <summary>
155         /// 查询整张数据表
156         /// </summary>
157         /// <param name="tableName"></param>
158         /// <returns></returns>
159         public List<string[]> QueryTable(string tableName)
160         {
161             string queryString = "SELECT" + " "+ "*FROM" + " " + 
162                 tableName;
163             List<string[]> QueryResult = new List<string[]>();
164             if (null == QueryResult)
165             {
166                 return null;
167             }
168             SQLiteDataReader dr = ExecuteQuery(queryString);
169             if(dr.HasRows)
170             {
171                 while(dr.Read())
172                 {
173                     string[] queryData = new string[dr.FieldCount];
174                     for (int i = 0; i < dr.FieldCount; i++)
175                     {
176                         queryData[i] = dr[i].ToString();
177                     }
178                     QueryResult.Add(queryData);
179                 }             
180              }
181 
182             return QueryResult;
183         }       
184       

猜你喜欢

转载自www.cnblogs.com/QingYiShouJiuRen/p/10198744.html
今日推荐