zoukankan      html  css  js  c++  java
  • 【DB】SQLiteHelper

        /// <summary> 
        /// 说明:这是一个针对System.Data.SQLite的数据库常规操作封装的通用类。 
        /// </summary> 
        public class SQLiteDBHelper 
        { 
            private string connectionString = string.Empty; 
            /// <summary> 
            /// 构造函数 
            /// </summary> 
            /// <param name="dbPath">SQLite数据库文件路径</param> 
            public SQLiteDBHelper(string dbPath) 
            { 
                this.connectionString = "Data Source=" + dbPath; 
            } 
            /// <summary> 
            /// 创建SQLite数据库文件 
            /// </summary> 
            /// <param name="dbPath">要创建的SQLite数据库文件路径</param> 
            public static void CreateDB(string dbPath) 
            { 
                using (SQLiteConnection connection = new SQLiteConnection("Data Source=" + dbPath)) 
                { 
                        connection.Open(); 
                        using (SQLiteCommand command = new SQLiteCommand(connection)) 
                        { 
                                command.CommandText = "CREATE TABLE Demo(id integer NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE)"; 
                                command.ExecuteNonQuery(); 
                                command.CommandText = "DROP TABLE Demo"; 
                                command.ExecuteNonQuery(); 
                        } 
                } 
            } 
            /// <summary> 
            /// 对SQLite数据库执行增删改操作,返回受影响的行数。 
            /// </summary> 
            /// <param name="sql">要执行的增删改的SQL语句</param> 
            /// <param name="parameters">执行增删改语句所需要的参数,参数必须以它们在SQL语句中的顺序为准</param> 
            /// <returns></returns> 
            public int ExecuteNonQuery(string sql, SQLiteParameter[] parameters) 
            { 
                int affectedRows = 0; 
                using (SQLiteConnection connection = new SQLiteConnection(connectionString)) 
                { 
                        connection.Open(); 
                        using (DbTransaction transaction = connection.BeginTransaction()) 
                        { 
                                using (SQLiteCommand command = new SQLiteCommand(connection)) 
                                { 
                                        command.CommandText = sql; 
                                        if (parameters != null) 
                                        { 
                                                command.Parameters.AddRange(parameters); 
                                        } 
                                        affectedRows = command.ExecuteNonQuery(); 
                                } 
                                transaction.Commit(); 
                        } 
                } 
                return affectedRows; 
            } 
            /// <summary> 
            /// 执行一个查询语句,返回一个关联的SQLiteDataReader实例 
            /// </summary> 
            /// <param name="sql">要执行的查询语句</param> 
            /// <param name="parameters">执行SQL查询语句所需要的参数,参数必须以它们在SQL语句中的顺序为准</param> 
            /// <returns></returns> 
            public SQLiteDataReader ExecuteReader(string sql, SQLiteParameter[] parameters) 
            { 
                SQLiteConnection connection = new SQLiteConnection(connectionString); 
                SQLiteCommand command = new SQLiteCommand(sql, connection); 
                if (parameters != null) 
                { 
                        command.Parameters.AddRange(parameters); 
                } 
                connection.Open(); 
                return command.ExecuteReader(CommandBehavior.CloseConnection); 
            } 
            /// <summary> 
            /// 执行一个查询语句,返回一个包含查询结果的DataTable 
            /// </summary> 
            /// <param name="sql">要执行的查询语句</param> 
            /// <param name="parameters">执行SQL查询语句所需要的参数,参数必须以它们在SQL语句中的顺序为准</param> 
            /// <returns></returns> 
            public DataTable ExecuteDataTable(string sql, SQLiteParameter[] parameters) 
            { 
                using (SQLiteConnection connection = new SQLiteConnection(connectionString)) 
                { 
                        using (SQLiteCommand command = new SQLiteCommand(sql, connection)) 
                        { 
                                if (parameters != null) 
                                { 
                                        command.Parameters.AddRange(parameters); 
                                } 
                                SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); 
                                DataTable data = new DataTable(); 
                                adapter.Fill(data); 
                                return data; 
                        } 
                }                           
            } 
            /// <summary> 
            /// 执行一个查询语句,返回查询结果的第一行第一列 
            /// </summary> 
            /// <param name="sql">要执行的查询语句</param> 
            /// <param name="parameters">执行SQL查询语句所需要的参数,参数必须以它们在SQL语句中的顺序为准</param> 
            /// <returns></returns> 
            public Object ExecuteScalar(string sql, SQLiteParameter[] parameters) 
            { 
                using (SQLiteConnection connection = new SQLiteConnection(connectionString)) 
                { 
                        using (SQLiteCommand command = new SQLiteCommand(sql, connection)) 
                        { 
                                if (parameters != null) 
                                { 
                                        command.Parameters.AddRange(parameters); 
                                } 
                                SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); 
                                DataTable data = new DataTable(); 
                                adapter.Fill(data); 
                                return data; 
                        } 
                } 
            } 
            /// <summary> 
            /// 查询数据库中的所有数据类型信息 
            /// </summary> 
            /// <returns></returns> 
            public DataTable GetSchema() 
            { 
                using (SQLiteConnection connection = new SQLiteConnection(connectionString)) 
                { 
                        connection.Open(); 
                        DataTable data=connection.GetSchema("TABLES"); 
                        connection.Close(); 
                        //foreach (DataColumn column in data.Columns) 
                        //{ 
                        //        Console.WriteLine(column.ColumnName); 
                        //} 
                        return data; 
                } 
            } 
  • 相关阅读:
    Android-adb相关
    我想和iOS大牛们交流的问题
    iOS应用 bug定位
    iOS 中Block的基础用法
    iOS9 耗电量惊人
    三人小团队git分支协作试水
    今天开通了博客
    解决XCode安装插件后插件不能使用的问题(转载)
    (转载)iOS- 指压即达,如何集成iOS9里的3D Touch
    人魔七七
  • 原文地址:https://www.cnblogs.com/lenlen-de/p/3436132.html
Copyright © 2011-2022 走看看