文号
822543
阅读
5383
回复
1
收藏
1
C#中SQLite数据库引擎的使用
2016/07/10
IP:四川

首先,从这个网站下载SQLite的XXXXXXX驱动。

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

推荐下载这个版本:

Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 2.0 SP2)

sqlite-netFx20-static-binary-bundle-Win32-2005-1.0.102.0.zip

使用SQLite需要将C#的架构改成x86,不能用Any CPU。

app.config改成这样,不然在新版.NET中会加载失败。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup uselegacyv2runtimeactivationpolicy="true"> 
        <supportedruntime version="v4.0.30319">
        <supportedruntime version="v2.0.50727">
    </supportedruntime></supportedruntime></startup>
</configuration>

如果不想改app.config可以下载这个,不过.net3.5及以下版本就不能用了:

Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.0)

sqlite-netFx40-static-binary-bundle-Win32-2010-1.0.102.0.zip

使用时添加System.Data.SQLite.dll的引用就行了,不需要做其它事情。

使用示例代码如下,连接时如果文件不存在则会自动创建文件。

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Data.SQLite;

namespace sqlitetest
{
    class Program
    {
        static void Main(string[] args)
        {
            using (DbConnection conn = new SQLiteConnection("Data Source = test.db"))
            {
                conn.Open();
                using (DbCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "CREATE TABLE IF NOT EXISTS student(id integer, name varchar(20), sex varchar(2));";
                    cmd.ExecuteNonQuery();

                    cmd.CommandText = "INSERT INTO student VALUES(1, '小红', '男')";
                    cmd.ExecuteNonQuery();
                    cmd.CommandText = "INSERT INTO student VALUES(2, '小李', '女')";
                    cmd.ExecuteNonQuery();
                    cmd.CommandText = "INSERT INTO student VALUES(3, '小明', '男')";
                    cmd.ExecuteNonQuery();

                    cmd.CommandText = "SELECT * FROM student";
                    using (DbDataReader dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            Console.WriteLine(dr.GetInt32(0));
                            Console.WriteLine(dr.GetString(1));
                            Console.WriteLine(dr.GetString(2));
                        }
                    }
                }
            }
        }
    }
}
[ 修改于10年5个月前 - 2016/07/10 03:10:34 ]
acmilan作者
10年5个月前修改于 10年5个月前IP:四川
822547
1楼
SQLite常用版本

适用于.NET 2.0 SP2/3.5:
attachment icon sqlite-netFx20-static-binary-bundle-Win32-2005-1.0.102.0.zip 1.92MB ZIP 30次下载

适用于.NET 3.5 SP1:
attachment icon sqlite-netFx35-static-binary-bundle-Win32-2008-1.0.102.0.zip 2.37MB ZIP 27次下载

适用于.NET 4.x:
attachment icon sqlite-netFx40-static-binary-bundle-Win32-2010-1.0.102.0.zip 2.61MB ZIP 27次下载

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的