SQLite不用安装的呀,直接调用。要用x86的sqlite版本,
用x86编译 如果是Web的还要把IIS设成运行在x86上。这样就可以了。
我调用的sqlite机器上从没装什么sqlit直接拿那个DLL就能跑了。都是用x86编译的
解决方案 »
- 在Form1里声明的对象在Form2里怎么修改它的变量并且保留对象在Form1里修改的变量的
- 求HTML正则
- vs2005如何设置在调试时,不每次都要生成和编译
- 如何修改WMV的视频流尺寸及Bitrate等信息并另存为新的WMV文件
- c#发布的问题
- 我女朋友要交作业,我不会,大哥们帮帮忙啊!!小弟风天雪地跪下求大哥大嫂了....
- 有关统计,报表的问题!
- XP下编译的软件在win7下不能用
- 很奇怪的textbox输入问题
- WinForm中调用自定义的“正在查询中......”窗口的问题
- WinForm 窗体中不同按钮控制动态产生的不同的 timmer 的启停
- C# TabControl简单又奇怪问题,在线等。。。。。。。。。
用编译成32位的程序+32位的dll试了 也不行
sqlite是用c/c++来写的,要依赖c/c++ runtime的东西,完整安装包里面就有安装
要在bin目录下面加上runtime的几个dll,并且改一个config文件,具体我懒得查了,当年我研究这个两三天啊
用这个dll试试
卸载了也照样运行
你用1.0.66试试吧,还有他的不是C++写的,是C#写的。你所说的C++是数据库管理器工具吧
你用1.0.66试试吧,还有他的不是C++写的,是C#写的。你所说的C++是数据库管理器工具吧我上一个项目用的是最新的,我用的是1.0.85的
你试试下载他们的完整安装包,然后卸载你自己机器的runtime,然后试试安装,中间肯定会看到安装runtime的。
这个在我用sqlite的第一天看他们官网的时候就知道了另外,sqlite3这个核心一直都是用c/c++写的,sqlite.net只是一个封装而已
你用1.0.66试试吧,还有他的不是C++写的,是C#写的。你所说的C++是数据库管理器工具吧http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki看到我和你都是错的,页面上第一段就说了,下载的包,如果有static的,都是要装c++ runtime的,反之则不用,这个不是版本的问题
你用1.0.66试试吧,还有他的不是C++写的,是C#写的。你所说的C++是数据库管理器工具吧http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki看到我和你都是错的,页面上第一段就说了,下载的包,如果有static的,都是要装c++ runtime的,反之则不用,这个不是版本的问题那就是说没有static的就不用装C++ runtime拉?还有我下载的DLL是这里下的 我软件所用的版本编译方式是 非 PLATFORM_COMPACTFRAMEWORK编译方式的版本。 一直用都没装过Runtime C++ 目前只在机器上网net3.5 然后直接调用SQLite.DLL 版本就是1.0.66 http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/
你用1.0.66试试吧,还有他的不是C++写的,是C#写的。你所说的C++是数据库管理器工具吧http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki看到我和你都是错的,页面上第一段就说了,下载的包,如果有static的,都是要装c++ runtime的,反之则不用,这个不是版本的问题那就是说没有static的就不用装C++ runtime拉?还有我下载的DLL是这里下的 我软件所用的版本编译方式是 非 PLATFORM_COMPACTFRAMEWORK编译方式的版本。 一直用都没装过Runtime C++ 目前只在机器上网net3.5 然后直接调用SQLite.DLL 版本就是1.0.66 http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/
我觉得就是将sqlite3嵌入到dll一样,把runtime的dll也嵌入了而已
另外,确实要指正的,sqlite3这个核心是c/c++写的,不然根本就不会有x86/x64的问题
你用1.0.66试试吧,还有他的不是C++写的,是C#写的。你所说的C++是数据库管理器工具吧http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki看到我和你都是错的,页面上第一段就说了,下载的包,如果有static的,都是要装c++ runtime的,反之则不用,这个不是版本的问题那就是说没有static的就不用装C++ runtime拉?还有我下载的DLL是这里下的 我软件所用的版本编译方式是 非 PLATFORM_COMPACTFRAMEWORK编译方式的版本。 一直用都没装过Runtime C++ 目前只在机器上网net3.5 然后直接调用SQLite.DLL 版本就是1.0.66 http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/
我觉得就是将sqlite3嵌入到dll一样,把runtime的dll也嵌入了而已
另外,确实要指正的,sqlite3这个核心是c/c++写的,不然根本就不会有x86/x64的问题看了他的原码是有sqlite3.c 这个, 用上面的说的非PLATFORM_COMPACTFRAMEWORK变成了引用他本身的DLL#if !PLATFORM_COMPACTFRAMEWORK
private const string SQLITE_DLL = "System.Data.SQLite.DLL";
#else
internal const string SQLITE_DLL = "SQLite.Interop.066.DLL";
#endif // PLATFORM_COMPACTFRAMEWORK#else
private const string SQLITE_DLL = "SQLite.Interop.DLL";
#endif // USE_INTEROP_DLL#else
private const string SQLITE_DLL = "sqlite3";
#endif
[DllImport(SQLITE_DLL)]
internal static extern IntPtr sqlite3_bind_parameter_name_interop(IntPtr stmt, int index, out int len); [DllImport(SQLITE_DLL)]
internal static extern IntPtr sqlite3_column_database_name_interop(IntPtr stmt, int index, out int len); [DllImport(SQLITE_DLL)]
internal static extern IntPtr sqlite3_column_database_name16_interop(IntPtr stmt, int index, out int len); [DllImport(SQLITE_DLL)]
internal static extern IntPtr sqlite3_column_decltype_interop(IntPtr stmt, int index, out int len);
所以说下的版本问题吧 用1.0.66的不会出现问题的。。
-_-
就算static里面的,代码都是这样的,只是c#的dll是否把SQLite.Interop.DLL这个文件嵌入而已根本问题就是SQLite.Interop.DLL的编译方式,应该是集成了c++ runtime的库的
所以你那个66版的不需要安装c++ runtime而已
-_-
就算static里面的,代码都是这样的,只是c#的dll是否把SQLite.Interop.DLL这个文件嵌入而已根本问题就是SQLite.Interop.DLL的编译方式,应该是集成了c++ runtime的库的
所以你那个66版的不需要安装c++ runtime而已虽然我对c/c++的东西不是很熟,但是我记得在编译c/c++的东西时候,添加相关的*.lib,可以集成到相应的库,而最后不需要把*.lib对应的*.dll引用上的看到static,才想起来,然后去查看了一下静态编译
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki网站中下载
Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.5)或者
Precompiled Statically-Linked Binaries for 64-bit Windows (.NET Framework 4.5)的dll,视你的系统是32位还是64位的。如果下载的不是静态编译的dll,那么你需要两个dll放在指定目录下,一个是sqlite的,一个是VC的runtime包。
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki网站中下载
Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.5)或者
Precompiled Statically-Linked Binaries for 64-bit Windows (.NET Framework 4.5)的dll,视你的系统是32位还是64位的。如果下载的不是静态编译的dll,那么你需要两个dll放在指定目录下,一个是sqlite的,一个是VC的runtime包。
问一下,文件名里有bundle,说明里多一句“features the mixed-mode assembly”的,有什么区别吗?
你怎么知道出错的机器上缺C++运行时呀
报错信息说得很清楚,是缺Data Provider,不缺C++运行时呀。
你怎么知道出错的机器上缺C++运行时呀
报错信息说得很清楚,是缺Data Provider,不缺C++运行时呀。这东西有点蹊跷的,调用vc.net编写的程序集如果缺少c++运行时的时候会抛出无法加载程序集异常
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki网站中下载
Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.5)或者
Precompiled Statically-Linked Binaries for 64-bit Windows (.NET Framework 4.5)的dll,视你的系统是32位还是64位的。如果下载的不是静态编译的dll,那么你需要两个dll放在指定目录下,一个是sqlite的,一个是VC的runtime包。
问一下,文件名里有bundle,说明里多一句“features the mixed-mode assembly”的,有什么区别吗?用bundle的,只需要一个dll,不加的用有两个dll在指定目录下。
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki网站中下载
Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.5)或者
Precompiled Statically-Linked Binaries for 64-bit Windows (.NET Framework 4.5)的dll,视你的系统是32位还是64位的。如果下载的不是静态编译的dll,那么你需要两个dll放在指定目录下,一个是sqlite的,一个是VC的runtime包。
问一下,文件名里有bundle,说明里多一句“features the mixed-mode assembly”的,有什么区别吗?用bundle的,只需要一个dll,不加的用有两个dll在指定目录下。
已经用上了,非常感谢!