仿照 SQLHelper 写的 SQLiteHelper

下载 SQLiteHelper

初始化数据库地址:

public static readonly string ConnStr = AppDomain.CurrentDomain.BaseDirectory +  ConfigurationManager.AppSettings["SqliteDbPath"];

可工具不同的项目使用不同的语句,WEB项目和WINFORM有所不同。

要记得添加 System.Data.SQLite.DLL 引用。

using System;
 using System.Data;
 using System.Text.RegularExpressions;
 using System.Xml;
 using System.IO;
 using System.Collections;
 using System.Data.SQLite;
 using System.Configuration;
 
 namespace IBOOK.Communication.DBUtility {
     /// <summary>
     /// SQLiteHelper is a utility class similar to "SQLHelper" in MS
     /// Data Access Application Block and follows similar pattern.
     /// </summary>
     public class SQLiteHelper {
         /// <summary>  
         /// 获得连接对象  
         /// </summary>  
         /// <returns></returns>  
         ///   
         public static readonly string ConnStr = AppDomain.CurrentDomain.BaseDirectory +  ConfigurationManager.AppSettings["SqliteDbPath"];
         public static SQLiteConnection GetSQLiteConnection() {
             return new SQLiteConnection("Data Source=" + ConnStr);
 
         }
 
         private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, string cmdText, params object[] p) {
 
             if (conn.State != ConnectionState.Open)
                 conn.Open();
             cmd.Parameters.Clear();
             cmd.Connection = conn;
             cmd.CommandText = cmdText;
 
             cmd.CommandType = CommandType.Text;
             cmd.CommandTimeout = 30;
 
             if (p != null) {
                 foreach (object parm in p)
                     cmd.Parameters.AddWithValue(string.Empty, parm); 
             }
         }
 
         /// <summary>  
         /// 返回DataSet  
         /// </summary>  
         /// <span  name="cmdText" class="mceItemParam"></span>The CMD text.</param>  
         /// <span  name="p" class="mceItemParam"></span>The p.</param>  
         /// <returns></returns>  
         public static DataSet ExecuteDataset(string cmdText, params object[] p) {
             DataSet ds = new DataSet();
             SQLiteCommand command = new SQLiteCommand();
             using (SQLiteConnection connection = GetSQLiteConnection()) {
                 PrepareCommand(command, connection, cmdText, p);
                 SQLiteDataAdapter da = new SQLiteDataAdapter(command);
                 da.Fill(ds);
             }
 
             return ds;
         }
 
         /// <summary>  
         /// Executes the data row.  
         /// </summary>  
         /// <span  name="cmdText" class="mceItemParam"></span>The CMD text.</param>  
         /// <span  name="p" class="mceItemParam"></span>The p.</param>  
         /// <returns></returns>  
         public static DataRow ExecuteDataRow(string cmdText, params object[] p) {
             DataSet ds = ExecuteDataset(cmdText, p);
             if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                 return ds.Tables[0].Rows[0];
             return null;
         }
 
         /// <summary>  
         /// 执行SQL 返回受影响的行数  
         /// </summary>  
         /// <span  name="cmdText" class="mceItemParam"></span>a</param>  
         /// <span  name="commandParameters" class="mceItemParam"></span>传入的参数</param>  
         /// <returns></returns>  
         public static int ExecuteNonQuery(string cmdText, params object[] p) {
             SQLiteCommand command = new SQLiteCommand();
 
             using (SQLiteConnection connection = GetSQLiteConnection()) {
                 PrepareCommand(command, connection, cmdText, p);
                 return command.ExecuteNonQuery();
             }
         }
 
         /// <summary>  
         /// 返回SqlDataReader对象  
         /// </summary>  
         /// <span  name="cmdText" class="mceItemParam"></span></param>  
         /// <span  name="commandParameters" class="mceItemParam"></span>传入的参数</param>  
         /// <returns></returns>  
         public static SQLiteDataReader ExecuteReader(string cmdText, params object[] p) {
             SQLiteCommand command = new SQLiteCommand();
             SQLiteConnection connection = GetSQLiteConnection();
             try {
                 PrepareCommand(command, connection, cmdText, p);
                 SQLiteDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
                 return reader;
             } catch {
                 connection.Close();
                 throw;
             }
         }
 
         /// <summary>  
         /// 返回结果集中的第一行第一列,忽略其他行或列  
         /// </summary>  
         /// <span  name="cmdText" class="mceItemParam"></span></param>  
         /// <span  name="commandParameters" class="mceItemParam"></span>传入的参数</param>  
         /// <returns></returns>  
         public static object ExecuteScalar(string cmdText, params object[] p) {
             SQLiteCommand cmd = new SQLiteCommand();
 
             using (SQLiteConnection connection = GetSQLiteConnection()) {
                 PrepareCommand(cmd, connection, cmdText, p);
                 return cmd.ExecuteScalar();
             }
         }
 
         /// <summary>  
         /// 分页  
         /// </summary>  
         /// <span  name="recordCount" class="mceItemParam"></span></param>  
         /// <span  name="pageIndex" class="mceItemParam"></span></param>  
         /// <span  name="pageSize" class="mceItemParam"></span></param>  
         /// <span  name="cmdText" class="mceItemParam"></span></param>  
         /// <span  name="countText" class="mceItemParam"></span></param>  
         /// <span  name="p" class="mceItemParam"></span></param>  
         /// <returns></returns>  
         public static DataSet ExecutePager(ref int recordCount, int pageIndex, int pageSize, string cmdText, string countText, params object[] p) {
             if (recordCount < 0)
                 recordCount = int.Parse(ExecuteScalar(countText, p).ToString());
 
             DataSet ds = new DataSet();
 
             SQLiteCommand command = new SQLiteCommand();
             using (SQLiteConnection connection = GetSQLiteConnection()) {
                 PrepareCommand(command, connection, cmdText, p);
                 SQLiteDataAdapter da = new SQLiteDataAdapter(command);
                 da.Fill(ds, (pageIndex - 1) * pageSize, pageSize, "result");
             }
             return ds;
         }  
     }
 }
View Code
出处:http://www.zhaiqianfeng.com    
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4616796.html