C#操作SQLite数据库

首先获取System.Data.SQLite支持

C#操作SQLite数据库_第1张图片

 

C#操作SQLite数据库_第2张图片

然后使用SQLiteHelper

using System;
using System.Collections.Generic;
using System.Data.SQLite;
using System.Data;
 
namespace WindowsFormsApplication2
{
    public class SQLiteHelper
    {
        private static string connectionString = string.Empty;

        /// 
        /// 根据数据源、密码、版本号设置连接字符串。
        /// 
        /// 数据源。
        /// 密码。
        /// 版本号(缺省为3)。
        public static void SetConnectionString(string datasource, string password, int version = 3)
        {
            connectionString = string.Format("Data Source={0};Version={1};password={2}",
                datasource, version, password);
        }

        /// 
        /// 创建一个数据库文件。如果存在同名数据库文件,则会覆盖。
        /// 
        /// 数据库文件名。为null或空串时不创建。
        /// (可选)数据库密码,默认为空。
        /// 
        public static void CreateDB(string dbName)
        {
            if (!string.IsNullOrEmpty(dbName))
            {
                try { SQLiteConnection.CreateFile(dbName); }
                catch (Exception) { throw; }
            }
        }

        ///  
        /// 对SQLite数据库执行增删改操作,返回受影响的行数。 
        ///  
        /// 要执行的增删改的SQL语句。 
        /// 执行增删改语句所需要的参数,参数必须以它们在SQL语句中的顺序为准。 
        ///  
        /// 
        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;
        }

        /// 
        /// 批量处理数据操作语句。
        /// 
        /// SQL语句集合。
        /// 
        public void ExecuteNonQueryBatch(List> 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; }
                    }
                }
            }
        }

        /// 
        /// 执行查询语句,并返回第一个结果。
        /// 
        /// 查询语句。
        /// 查询结果。
        /// 
        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();//Scalar:标量
                    }
                    catch (Exception) { throw; }
                }
            }
        }

        ///  
        /// 执行一个查询语句,返回一个包含查询结果的DataTable。 
        ///  
        /// 要执行的查询语句。 
        /// 执行SQL查询语句所需要的参数,参数必须以它们在SQL语句中的顺序为准。 
        ///  
        /// 
        public static DataTable ExecuteQuery(string sql, params SQLiteParameter[] parameters)
        {
            using (SQLiteConnection connection = new SQLiteConnection(connectionString))
            {
                using (SQLiteCommand command = new SQLiteCommand(sql, connection))
                {
           
                    
                    if (parameters != null && parameters.Length != 0)
                    {
                        command.Parameters.AddRange(parameters);
                    }
                    SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
                    DataTable data = new DataTable();
                    try { adapter.Fill(data); }
                    catch (Exception) { throw; }
                    return data;
                }
            }
        }

        ///  
        /// 执行一个查询语句,返回一个关联的SQLiteDataReader实例。 
        ///  
        /// 要执行的查询语句。 
        /// 执行SQL查询语句所需要的参数,参数必须以它们在SQL语句中的顺序为准。 
        ///  
        /// 
        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; }
        }

        ///  
        /// 查询数据库中的所有数据类型信息。
        ///  
        ///  
        /// 
        public DataTable GetSchema()
        {
            using (SQLiteConnection connection = new SQLiteConnection(connectionString))
            {
                try
                {
                    connection.Open();
                    return connection.GetSchema("TABLES");
                }
                catch (Exception) { throw; }
            }
        }
    }
}

使用C#操作SQLite数据库

设置参数,初始化参数

获取数据库文件所在的路径

设置连接字符串

执行SQL语句的执行,返回的是DataTable对象

将DataTable对象在DataGridView中进行展示。

C#操作SQLite数据库_第3张图片

        private void button5_Click(object sender, EventArgs e)
        {
            SQLiteParameter[] sp =
            {
                new SQLiteParameter("@id",DbType.Int32)
            };
            sp[0].Value = 1;
            //sp.
            //SQLiteHelper.SetConnectionString("D:\\用户目录\\我的文档\\Visual Studio 2015\\Projects\\WindowsFormsApplication2\\WindowsFormsApplication2\\midtrans.db",null,3);
            string cd = System.Environment.CurrentDirectory;
            string pd = Directory.GetParent(Directory.GetParent(cd).FullName).FullName;
            pd += "\\midtrans.db";
            //MessageBox.Show(str2);
            SQLiteHelper.SetConnectionString(pd, null, 3);
            DataTable dt = SQLiteHelper.ExecuteQuery("select * from WXChatroom where id = @id", sp);
            dataGridView1.DataSource = dt;


            //string str =" ";
            //str += "\r\n" + System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
            //str += "\r\n" + System.Environment.CurrentDirectory;
            //str += "\r\n" + System.IO.Directory.GetCurrentDirectory();
            //str += "\r\n" + System.AppDomain.CurrentDomain.BaseDirectory;
            //str += "\r\n" + System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
            //str += "\r\n" + System.Windows.Forms.Application.StartupPath;
            //str += "\r\n" + System.Windows.Forms.Application.ExecutablePath;
            //Console.Write(str);
        }
    }
}

 

你可能感兴趣的:(sqlite)