SQLite——WPF項目中的注意事項


SQLite是一款小巧的數據庫,功能強大但占用資源卻非常的低,非常適合小型的應用,或者嵌入式的開發中,本文將說明一些在WPF項目中使用SQLite將會遇到的問題:


首先需要在項目中添加對SQLite的引用:

以下是一些操作sqlite數據庫的方法:

        SQLiteConnection _connection;
        /// <summary>
        /// SQLite連接
        /// </summary>
        SQLiteConnection connection
        {
            get
            {
                if (_connection == null)
                {
                    _connection = new SQLiteConnection(string.Format("Data Source={0}/DB/DB.db3;Version=3;", AppDomain.CurrentDomain.SetupInformation.ApplicationBase));
                    _connection.Open();
                }
                return _connection;
            }
        }

        /// <summary>
        /// SQLite增刪改
        /// </summary>
        /// <param name="sql">要執行的sql語句</param>
        /// <param name="parameters">所需參數</param>
        /// <returns>所受影響的行數</returns>
        int ExecuteNonQuery(string sql, SQLiteParameter[] parameters)
        {
            int affectedRows = 0;

            DbTransaction transaction = connection.BeginTransaction();
            SQLiteCommand command = new SQLiteCommand(connection);
            command.CommandText = sql;
            if (parameters != null)
            {
                command.Parameters.AddRange(parameters);
            }
            affectedRows = command.ExecuteNonQuery();
            transaction.Commit();

            return affectedRows;
        }

        /// <summary>
        /// SQLite查詢
        /// </summary>
        /// <param name="sql">要執行的sql語句</param>
        /// <param name="parameters">所需參數</param>
        /// <returns>結果DataTable</returns>
        DataTable ExecuteDataTable(string sql, SQLiteParameter[] parameters)
        {
            DataTable data = new DataTable();

            SQLiteCommand command = new SQLiteCommand(sql, connection);
            if (parameters != null)
            {
                command.Parameters.AddRange(parameters);
            }
            SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
            adapter.Fill(data);

            return data;
        }

        /// <summary>
        /// 查詢數據庫表信息
        /// </summary>
        /// <returns>數據庫表信息DataTable</returns>
        DataTable GetSchema()
        {
            DataTable data = new DataTable();

            data = connection.GetSchema("TABLES");

            return data;
        }

需要添加引用:

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

本例中,使用了DB.db3這個文件作為SQLite數據文件的載體:

                    _connection = new SQLiteConnection(string.Format("Data Source={0}/DB/DB.db3;Version=3;", AppDomain.CurrentDomain.SetupInformation.ApplicationBase));

當然你也可以使用DataSet讀入內存后使用SQLite進行訪問,相關連接字符串修改如下:

                    _connection = new SQLiteDBHelper(":memory:");

WPF使用的是.net 4.0 的框架,而引用的SQLite.dll 很有可能是在.net 2.0下開發的,所以還需要設置.net 2.0 框架下程序運行時的激活策略

添加App.config應用配置文件

在App.config文件中添加內容如下:

<?xml version="1.0"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM