.net調用sqlite資料庫

來源:互聯網
上載者:User

標籤:c#   sqlite   通訊錄   

我最近完成了一個項目,叫通訊錄軟體。這個是很簡單的系統,業務方面就不說了。我想分享一下,為什麼要用到sqlite資料庫。

我們在開發通訊錄的時候,就希望通訊錄在連網或者斷網的時候,都可以查詢通訊錄的資訊。那就需要將通訊錄的內容要同步到本地,sqlite是比較輕便的資料庫,非常利於儲存在本地。解決方案很簡單,連網的時候,我直接存取sql server資料庫伺服器,但是在網路不通的時候,我們只需要讀取sqlite的資料就可以了。

(1)建立sqlite表

我下載了一個SQLite Expert Professional 3工具,直接建立儲存通訊錄資訊的表。SQLite Expert Professional 3工具挺好用的,不過正式版是需要錢的。在建立資料表的過程中,我們要注意的地方就是DataTime類型的資料如何儲存。在sqlite資料庫裡面,我認為最好的方式就是將日期儲存為字串就好了,如果需要的時候,取出來再處理。

(2)引入dll

在使用sqlite資料庫的時候,我們在項目工程中引入System.Data.SQLite.dll

(3)C#使用sqlite資料庫的類

這是我們這篇文章最重要的內容,就是分享一下sqlite操作的基本類,代碼如下:

using System;using System.Collections.Generic;using System.Text;using System.Data.SQLite;using System.Data;namespace AddressBook{    class SQLiteHelper    {        private SQLiteConnection conn = null;        private string connString = string.Empty;        public string ConnString        {            get { return connString; }            set { connString = value; }        }        private string err = string.Empty;        public string Err        {            get { return err; }            set { err = value; }        }        public SQLiteHelper()        {            string connString = "Data Source =" + Environment.CurrentDirectory + "/AddressBook.db";            conn = new SQLiteConnection(connString);//建立資料庫執行個體,指定檔案位置            //conn.Open();//開啟資料庫,若檔案不存在會自動建立        }        /// <summary>        /// 建立表        /// </summary>        /// <returns></returns>        public int CreateTables(string sql)        {            SQLiteCommand cmdCreateTable = new SQLiteCommand(sql, conn);            cmdCreateTable.ExecuteNonQuery();//如果表不存在,建立資料表            return 1;        }        /// <summary>        /// 操作資料庫        /// </summary>        /// <param name="sql"></param>        /// <returns></returns>        public int ExecNoQuery(string sql)        {            int retValue = -1;            try            {                conn.Open();                SQLiteCommand cmd = new SQLiteCommand(sql, conn);                retValue = cmd.ExecuteNonQuery();                conn.Close();            }            catch (Exception ex)            {                err = ex.Message;                return -1;            }            return retValue;        }        /// <summary>        /// 擷取科室資料        /// </summary>        /// <returns></returns>        public DataSet GetDataSet(string sql)        {            try            {                DataSet dataset = new DataSet();                SQLiteDataAdapter adapter = new SQLiteDataAdapter();                adapter.SelectCommand = new SQLiteCommand(sql, conn);                adapter.Fill(dataset);                return dataset;            }            catch (Exception ex)            {                err = ex.Message;                return null;            }        }        /// <summary>        /// 返回1個字串        /// </summary>        /// <param name="sql"></param>        /// <returns></returns>        public string ExecReturenOne(string sql)        {            string result = string.Empty;            try            {                conn.Open();                SQLiteCommand cmd = new SQLiteCommand(sql, conn);                object obj = cmd.ExecuteScalar();                if (obj != null)                {                    result = obj.ToString();                }                conn.Close();            }            catch (Exception ex)            {                if (conn.State == System.Data.ConnectionState.Open)                {                    conn.Close();                }                err = ex.Message;                return "";            }            return result;        }    }}



著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

.net調用sqlite資料庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.