zoukankan      html  css  js  c++  java
  • 仿照 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    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    MySQL:Mysql字符串截取函数SUBSTRING的用法说明
    windows2003+iis6.0+php(fastcgi)5.3+wincache+memcached
    apache 80端口未被占用,启动不了的问题
    服务器端口大全
    UCenter 表结构
    “来自客户端名 a 的远程会话超出了所允许的失败登录最大次数。强行终止了会话。”原因及解决方法
    开发云应用从何入手?
    Building Nutch: Open Source Search
    Nutch0.9加入ICTCLAS 支持中文分词等(转)
    OWL解惑 :AllValuesFrom与Range的区别 关于Domain和Range
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4616796.html
Copyright © 2011-2022 走看看