zoukankan      html  css  js  c++  java
  • Sqlite帮助类

     public class SqliteHelp
        {
      // private readonly static string connectionString = ConfigurationManager.ConnectionStrings["connstrSqlite"].ConnectionString;
      public static string connectionString="数据库文件本地位置" ;
      /// <summary>
      /// 创建一个数据库文件。如果存在同名数据库文件,则会覆盖。
      /// </summary>
      /// <param name="dbName">数据库文件名。为null或空串时不创建。</param>
      /// <exception cref="Exception"></exception>
      public static void CreateDB(string dbName)
      {
       if (!string.IsNullOrEmpty(dbName))
       {
        try { SQLiteConnection.CreateFile(dbName); }
        catch (Exception) { throw; }
       }
      }
      /// <summary>
      /// 对SQLite数据库执行增删改操作,返回受影响的行数。
      /// </summary>
      /// <param name="sql">要执行的增删改的SQL语句。</param>
      /// <param name="parameters">执行增删改语句所需要的参数,参数必须以它们在SQL语句中的顺序为准。</param>
      /// <returns></returns>
      /// <exception cref="Exception"></exception>
      public int ExecuteNonQuery(string sql, params SQLiteParameter[] parameters)
      {
       int affectedRows = 0;
       using (SQLiteConnection connection = new SQLiteConnection(connectionString))
       {
        using (SQLiteCommand command = new SQLiteCommand(connection))
        {
         try
         {
          connection.Open();
          command.CommandText = sql;
          if (parameters.Length != 0)
          {
           command.Parameters.AddRange(parameters);
          }
          affectedRows = command.ExecuteNonQuery();
         }
         catch (Exception) { throw; }
        }
       }
       return affectedRows;
      }
      /// <summary>
      /// 批量处理数据操作语句。
      /// </summary>
      /// <param name="list">SQL语句集合。</param>
      /// <exception cref="Exception"></exception>
      public void ExecuteNonQueryBatch(List<KeyValuePair<string, SQLiteParameter[]>> list)
      {
       using (SQLiteConnection conn = new SQLiteConnection(connectionString))
       {
        try { conn.Open(); }
        catch { throw; }
        using (SQLiteTransaction tran = conn.BeginTransaction())
        {
         using (SQLiteCommand cmd = new SQLiteCommand(conn))
         {
          try
          {
           foreach (var item in list)
           {
            cmd.CommandText = item.Key;
            if (item.Value != null)
            {
             cmd.Parameters.AddRange(item.Value);
            }
            cmd.ExecuteNonQuery();
           }
           tran.Commit();
          }
          catch (Exception) { tran.Rollback(); throw; }
         }
        }
       }
      }
      /// <summary>
      /// 执行查询语句,并返回第一个结果。
      /// </summary>
      /// <param name="sql">查询语句。</param>
      /// <returns>查询结果。</returns>
      /// <exception cref="Exception"></exception>
      public object ExecuteScalar(string sql, params SQLiteParameter[] parameters)
      {
       using (SQLiteConnection conn = new SQLiteConnection(connectionString))
       {
        using (SQLiteCommand cmd = new SQLiteCommand(conn))
        {
         try
         {
          conn.Open();
          cmd.CommandText = sql;
          if (parameters.Length != 0)
          {
           cmd.Parameters.AddRange(parameters);
          }
          return cmd.ExecuteScalar();
         }
         catch (Exception) { throw; }
        }
       }
      }
      /// <summary>
      /// 执行一个查询语句,返回一个包含查询结果的DataTable。
      /// </summary>
      /// <param name="sql">要执行的查询语句。</param>
      /// <param name="parameters">执行SQL查询语句所需要的参数,参数必须以它们在SQL语句中的顺序为准。</param>
      /// <returns></returns>
      /// <exception cref="Exception"></exception>
      public static DataTable ExecuteQuery(string sql, params SQLiteParameter[] parameters)
      {
       using (SQLiteConnection connection = new SQLiteConnection(connectionString))
       {
        using (SQLiteCommand command = new SQLiteCommand(sql, connection))
        {
         if (parameters.Length != 0)
         {
          command.Parameters.AddRange(parameters);
         }
         SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
         DataTable data = new DataTable();
         try
         {
          adapter.Fill(data);
         }
         catch (Exception e)
         {
          throw e;
         }
         return data;
        }
       }
      }
      public static DataSet ExecuteQueryset(string sql, params SQLiteParameter[] parameters)
      {
       using (SQLiteConnection connection = new SQLiteConnection(connectionString))
       {
        using (SQLiteCommand command = new SQLiteCommand(sql, connection))
        {
         if (parameters.Length != 0)
         {
          command.Parameters.AddRange(parameters);
         }
         SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
         DataSet dataSet = new DataSet();
         try
         {
          adapter.Fill(dataSet);
         }
         catch (Exception e)
         {
          throw e;
         }
         return dataSet;
        }
       }
      }
      /// <summary>
      /// 执行一个查询语句,返回一个关联的SQLiteDataReader实例。
      /// </summary>
      /// <param name="sql">要执行的查询语句。</param>
      /// <param name="parameters">执行SQL查询语句所需要的参数,参数必须以它们在SQL语句中的顺序为准。</param>
      /// <returns></returns>
      /// <exception cref="Exception"></exception>
      public SQLiteDataReader ExecuteReader(string sql, params SQLiteParameter[] parameters)
      {
       SQLiteConnection connection = new SQLiteConnection(connectionString);
       SQLiteCommand command = new SQLiteCommand(sql, connection);
       try
       {
        if (parameters.Length != 0)
        {
         command.Parameters.AddRange(parameters);
        }
        connection.Open();
        return command.ExecuteReader(CommandBehavior.CloseConnection);
       }
       catch (Exception) { throw; }
      }
      /// <summary>
      /// 查询数据库中的所有数据类型信息。
      /// </summary>
      /// <returns></returns>
      /// <exception cref="Exception"></exception>
      public DataTable GetSchema()
      {
       using (SQLiteConnection connection = new SQLiteConnection(connectionString))
       {
        try
        {
         connection.Open();
         return connection.GetSchema("TABLES");
        }
        catch (Exception) { throw; }
       }
      }
        }
  • 相关阅读:
    设置EntityFramework中decimal类型数据精度
    关于vue中的nextTick深入理解
    解决使用VS2013创建的MVC项目在VS2015中打开的各种问题
    mysql免安装版的下载与安装
    酷狗缓存文件kgtemp的加密方式
    PowerDesigner反向生成物理数据模型
    VISUAL STUDIO 2012下的OPENCV 2.4.7安装过程
    讲解DLL内容的比较详细的站点
    strcpy_s与strcpy的区别
    【原创】在VS2012中采用C++中调用DLL中的函数(4)
  • 原文地址:https://www.cnblogs.com/nxj1997/p/13224731.html
Copyright © 2011-2022 走看看