c# 操作sqlite 数据库的类

原文地址:http://www.cnblogs.com/Leo_wl/archive/2010/06/23/1763735.html

 

using System;

using System.Text;

using System.Data;

using System.Data.SQLite;



namespace WQ.SQLite.DataBase

{



 

    public class SQLiteDataBase : IDisposable

    {

        SQLiteConnection conn;

        private int iTimeOut = 30;

        private string strErro;

        private string connStr;



        public SQLiteDataBase(string _connString)

        {

            connStr = _connString;

        }



        private SQLiteCommand CreateCommand(string sqlString)

        {

            this.Open(connString);

            SQLiteCommand command = new SQLiteCommand(sqlString, this.conn);

            command.CommandTimeout = this.TimeOut;

            command.CommandType = CommandType.Text;

            command.CommandText = sqlString;

            return command;

        }



        public bool ExcQuery(string sqlString)

        {

            try

            {

                SQLiteCommand command = new SQLiteCommand(sqlString, new SQLiteConnection(connString));

                command.Connection.Open();

                command.ExecuteNonQuery();

                command.Connection.Close();

                return true;

            }

            catch (Exception exception)

            {

                this.strErro = exception.ToString();

                return false;

            }

        }



        public DataTable GetDataTable(string sqlString)

        {

            try

            {

                SQLiteConnection selectConnection = new SQLiteConnection(connString);

                SQLiteDataAdapter adapter = new SQLiteDataAdapter(sqlString, selectConnection);

                DataSet dataSet = new DataSet();

                adapter.Fill(dataSet, "myTable");

                return dataSet.Tables["myTable"];

            }

            catch (Exception exception)

            {

                this.strErro = sqlString + "\n" + exception.Message;

                return null;

            }

        }



        public bool GetDataTable(string sqlString, ref DataTable DataTable)

        {

            try

            {

                SQLiteConnection selectConnection = new SQLiteConnection(connString);

                SQLiteDataAdapter adapter = new SQLiteDataAdapter(sqlString, selectConnection);

                DataSet dataSet = new DataSet();

                adapter.Fill(dataSet, "myTable");

                DataTable = dataSet.Tables["myTable"];

                return true;

            }

            catch (Exception exception)

            {

                this.strErro = sqlString + "\n" + exception.Message;

                return false;

            }

        }



        public bool GetDataTable(string sqlString, SQLiteParameter[] pa, ref DataTable dt)

        {

            try

            {

                SQLiteConnection selectConnection = new SQLiteConnection(connString);

                SQLiteDataAdapter adapter = new SQLiteDataAdapter(sqlString, selectConnection);

                DataSet dataSet = new DataSet();

                for (int i = 0; i < pa.Length; i++)

                {

                    adapter.SelectCommand.Parameters.Add(pa[i]);

                }

                adapter.Fill(dataSet, "myTable");

                dt = dataSet.Tables["myTable"];

                return true;

            }

            catch (Exception exception)

            {

                this.strErro = sqlString + "\n" + exception.Message;

                return false;

            }

        }



        public bool GetDataTable(string sqlString, int pageIndex, int maxRecords, ref DataTable DataTable)

        {

            try

            {

                SQLiteConnection selectConnection = new SQLiteConnection(connString);

                SQLiteDataAdapter adapter = new SQLiteDataAdapter(sqlString, selectConnection);

                DataSet dataSet = new DataSet();

                adapter.Fill(dataSet, pageIndex, maxRecords, "myTable");

                DataTable = dataSet.Tables["myTable"];

                return true;

            }

            catch (Exception exception)

            {

                this.strErro = sqlString + "\n" + exception.Message;

                return false;

            }

        }



        public string GetOneValue(string sqlString, SQLiteParameter[] pa)

        {

            SQLiteCommand command = new SQLiteCommand(sqlString, new SQLiteConnection(connString));

            for (int i = 0; i < pa.Length; i++)

            {

                command.Parameters.Add(pa[i]);

            }

            command.Connection.Open();

            string str = command.ExecuteScalar().ToString();

            command.Connection.Close();

            return str;

        }



        public string GetOneValue(string connString, string sqlString)

        {

            SQLiteCommand command = this.CreateCommand(sqlString);

            string str = command.ExecuteScalar().ToString();

            command.Connection.Close();

            return str;

        }



        private void Open(string _connectionString)

        {

            if (this.conn == null)

            {

                this.conn = new SQLiteConnection(_connectionString);

                this.conn.Open();

            }

            else if (this.conn.State != ConnectionState.Open)

            {

                this.conn.Open();

            }

        }



        public void Close()

        {

            if (this.conn != null)

            {

                this.conn.Close();

            }

            else if (this.conn.State == ConnectionState.Open)

            {

                this.conn.Close();

            }

        }



        public void Dispose()

        {

            if (this.conn != null)

            {

                this.conn.Dispose();

                this.conn = null;

            }

        }



        public string ErrString

        {

            get

            {

                return this.strErro;

            }

        }



        private string connString

        {

            get

            {

                return this.connStr;

            }

            set

            {

                this.connStr = value;

            }

        }



        public int TimeOut

        {

            get

            {

                return this.iTimeOut;

            }

            set

            {

                this.iTimeOut = value;

            }

        }



    }

}

你可能感兴趣的:(sqlite)