zoukankan      html  css  js  c++  java
  • (转)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;
                }
            }
    
        }
    }

    版权说明:作者:张颖希PocketZ's Blog
    出处:http://www.cnblogs.com/PocketZ
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    若本文为翻译内容,目的为练习英文水平,如有雷同,纯属意外!有不妥之处,欢迎拍砖

  • 相关阅读:
    记第一场省选
    POJ 2083 Fractal 分形
    CodeForces 605A Sorting Railway Cars 思维
    FZU 1896 神奇的魔法数 dp
    FZU 1893 内存管理 模拟
    FZU 1894 志愿者选拔 单调队列
    FZU 1920 Left Mouse Button 简单搜索
    FZU 2086 餐厅点餐
    poj 2299 Ultra-QuickSort 逆序对模版题
    COMP9313 week4a MapReduce
  • 原文地址:https://www.cnblogs.com/PocketZ/p/1822611.html
Copyright © 2011-2022 走看看