C# 对数据库操作实例(SQLiiteManager)

在这使用到 DataTable 进行数据库元素的取操作,增删查改操作类似

SQLiteManager工具类

using System;
using System.Data;
using System.Data.SQLite;

namespace TestSQLite0424
{
    public class SQLiteManager
    {
        private static readonly object lockHelper = new object();
        static string connectString = @"Data Source=" + Environment.CurrentDirectory + "\\SQLite.db;";
        static volatile SQLiteConnection conn = null;
        public static SQLiteConnection GetConn(string connstr)
        {
            if (conn == null)
            {
                try
                {
                    lock (lockHelper)
                    {
                        if (conn == null)
                        {
                            conn = new SQLiteConnection(connectString); //新建一个连接
                            conn.Open();  //打开连接,如果sqlite.db存在就正常打开,如果不存在则创建一个SQLite.db文件  
                        }
                    }

                }
                catch (SQLiteException ex)
                {
                }
            }

            return conn;
        }
        public static bool InsertSQL(string sql)
        {
            bool rs = false;
            SQLiteConnection con = GetConn(connectString);
            try
            {
                ////con.Open();
                SQLiteCommand cmd = new SQLiteCommand(sql, con);
                int rs_ = cmd.ExecuteNonQuery();
                if (rs_ > 0)
                {
                    rs = true;
                }

            }
            catch (SQLiteException ex)
            {
            }
            finally
            {
                //con.Close();
            }
            return rs;
        }

        public static bool UpdateSQL(string sql)
        {
            bool rs = false;
            SQLiteConnection con = GetConn(connectString);
            try
            {
                //con.Open();
                SQLiteCommand cmd = new SQLiteCommand(sql, con);
                int rs_ = cmd.ExecuteNonQuery();
                if (rs_ > 0)
                {
                    rs = true;
                }

            }
            catch (SQLiteException ex)
            {
            }
            finally
            {
                //con.Close();
            }
            return rs;
        }

        public static DataTable QuerySQL(string sql, SQLiteParameter[] parameters)
        {
            DataTable dt = new DataTable();
            SQLiteConnection con = GetConn(connectString);
            try
            {
                //con.Open();  //打开连接,如果sqlite.db存在就正常打开,如果不存在则创建一个SQLite.db文件  
                SQLiteCommand cmd = conn.CreateCommand();
                cmd.CommandText = sql;   //数据库中要事先有个orders表  
                cmd.CommandType = CommandType.Text;
                cmd.Connection = conn;
                if (parameters != null)
                {
                    cmd.Parameters.AddRange(parameters);
                }
                SQLiteDataAdapter adapter = new SQLiteDataAdapter(cmd);
                dt = new DataTable();
                adapter.Fill(dt);
            }
            catch (SQLiteException ex)
            {
            }
            finally
            {
                //con.Close();
            }
            return dt;
        }
    }
}

对数据库元素进行“查”操作实例

using System;
using System.Data;

namespace TestSQLite0424
{
    class Program
    {
        static void Main(string[] args)
        {
            string sql = "select name,age,sex from person_info order by create_time asc limit 1";

            DataTable dtpers = SQLiteManager.QuerySQL(sql, null);

            if(dtpers.Rows.Count>0)
            {
                string name=Object2String( dtpers.Rows[0][0]);          //第一行第一列
                string age = Object2String(dtpers.Rows[0][1]);          //第一行第二列
                string sex = Object2String(dtpers.Rows[0][2]);          //第一行第三列

            }
            Console.WriteLine("查库结束");
            Console.ReadKey();
        }

        /// <summary>
        /// 将 object 转换成 string 
        /// </summary>
        /// <param name="v"></param>
        /// <returns></returns>
        private static string Object2String(object o)
        {
            try
            {
                return Convert.ToString(o);
            }
            catch
            {
                return "";
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/Q672405097/article/details/89486530