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>

 

posted on 2012-08-06 17:05  影天  阅读(5640)  评论(0编辑  收藏  举报

导航