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; }
       }
      }
        }
  • 相关阅读:
    Winform中让回车键完成TAB键的功能
    ASP.NET跨页传值方法汇总
    SQL SERVER中使用Unicode字符的注意问题
    如何为Oracle配置多个监听器
    如何实现上一条、下一条的功能
    "文件中的备份集是由BACKUP DATABASE...FILE=创建的,无法用于此还原操作"的解决办法
    [psp][lumines]dat数据包解包程序
    meteos@pc, the remake制作中...
    最近在仿照Lumines写
    建立huffman树,当然用堆排序
  • 原文地址:https://www.cnblogs.com/nxj1997/p/13224731.html
Copyright © 2011-2022 走看看