WEB开发网
开发学院数据库MSSQL Server System.Data.SQLite 数据库介绍 阅读

System.Data.SQLite 数据库介绍

 2010-07-15 00:00:00 来源:WEB开发网   
核心提示: 针对对数据库的操作情况,分为以下几种情况:创建数据库文件;返回DataTable;返回DataReader;执行增删改,System.Data.SQLite 数据库介绍(3),返回受影响的行数;执行查询,返回第一行第一列(通常用于带有行函数的查询,返回一个包含查询结果的DataTable///&

针对对数据库的操作情况,分为以下几种情况:

创建数据库文件;

返回DataTable;

返回DataReader;

执行增删改,返回受影响的行数;

执行查询,返回第一行第一列(通常用于带有行函数的查询,如SUM/AVG /COUNT等);

返回库中所有的表;

因为在System.Data.SQLite中不存在存储过程,所以所有的操作都是基于文本的 SQL语句,为了避免SQL注入,所以使用了参数化的SQL语句,这个数据库通用类如下:

using System;
using System.Data;
using System.Data.Common;
using System.Data.SQLite;
namespace SQLiteQueryBrowser
{
        /// <summary>
        /// 说明:这是一个针对System.Data.SQLite的数据库常规操作封装的通用类。
        /// 作者:zhoufoxcn(周公)
        /// 日期:2010-04-01
        /// Blog:http://zhoufoxcn.blog.51cto.com or http://blog.csdn.net/zhoufoxcn
        /// Version:0.1
        /// </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;
                        }
                }
        }
}

上一页  1 2 3 4 5  下一页

Tags:System Data SQLite

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接