今天在visual studio 下配置了sqlite3,新手各种不懂有木有,百度搜还没有明确的答案,自己弄了好久才弄明白的
First,先看看你的visual studio版本(x86,or,x64)
目测都是32位的 (Ultimate,Premium, Professional都是32位的,貌似只有Team Foundation Server有64位的)
然后去SQLite3官网下载 http://www.sqlite.org/download.html
这里用的是第二种方法,下载sqlite-shell-win32-x86-3080803.zip(当前日期2015-4-1),下载后解压到你想要的目录,为了避免可能的未知错误,路径都用英文的吧。
然后到系统环境变量中找到Path项添加你sqlite3.exe所在的文件夹,别忘了用 ; 把它和其它项隔开(我的是 ;D:\sqlite3 )
之后到命令行下输入sqlite3,出现下图所示就配置好了。
配置是配置完了,接下来就该在Visual Studio中使用了
(我创建的是C#项目,其他的没试过,老师“逼迫”啊,只让用C#)
首先,你需要下载一个dll来支持sqlite的使用
System.Data.SQLite.DLL
百度去搜就好了,根据你的VS和SQLite3的版本选这个(x86或者x64)
下载好了之后,在项目中右击选择引用
点开后,选择“浏览”,找到你刚才的dll,添加进去。VS会自动把这个dll加到项目的 /bin/Debug/ 下
顺便创建一个数据库,用命令行还是GUI界面随你便啦
(我这里创建了一个名为testxx.db3的一个数据库文件,里面只有一个表test,表里只有一列id,数据类型定义为int)
接下来在你需要对数据库有操作的类中加上
using System.Data.Common;
using System.Data.SQLite;
我是新建了一个这样的测试类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Common;
using System.Data.SQLite;
namespace testq
{
class Program
{
static void Main(string[] args)
{
string DB_PATH = "Data Source=D:/VisualStudioworkpath/testq/testq/testxx.db3";//这个当然是选择你的数据库路径了,别把斜线打反了。相对路径的话就相对你项目目录下的bin/Debug目录写好路径就行,但貌似不能直接访问bin/Debug里的资源
//上一级目录用 ../
//上两级用 ../../
//根目录用 /
//当前目录用 ./ 或者不写
using (SQLiteConnection con = new SQLiteConnection(DB_PATH))
{
con.Open();
string sqlStr = @"INSERT INTO test VALUES(222)";
using (SQLiteCommand cmd = new SQLiteCommand(sqlStr, con))
{
cmd.ExecuteNonQuery();
}
}
}
}
}
直接运行后又报错(没报错的就无视了吧)
“System.IO.FileLoadException”类型的未经处理的异常在 mscorlib.dll 中发生
其他信息: 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。
在这里 http://www.csharpcity.com/2010/sqlite-ado-net-c-4-0/ 找到了方法
Ouch! It seems like you’re running a .NET 2.0 library, which is ok, but it has unmanaged code in it, which may or may not be ok; we need to tell our project explicitly that we can run it.
原因是SQLite3 使用了 .NET 2.0 ,而现在都是 .NET 4.0,所以 要么更新 .Net Framework,要么用下面这种方法(告诉该项目,可以这样用)
–>需要加一个应用配置文件Application Config File
其实这个文件我们在创建工程的时候就应该自带了
在里面补充上缺的代码就好(应该都是缺 startup 后面的)
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
startup>
再运行一下,应该就不会报错了,去看看数据库发现里面多了数据项,终于成功了,吼吼!!
如果还有什么报错的地方欢迎回复我哈~ ~ ~ ~ ~