标签: sqlite

为什么我应该在Jet数据库上使用SQLite

前几天有人问过我,我想不出一个好的答案.平台可移植性与项目完全无关.

事实上,Jet有一些SQLite没有的功能,即外键.

那么有谁能想到为什么应该使用SQLite而不是Jet数据库呢?

sqlite ms-access jet

21
推荐指数
4
解决办法
1万
查看次数

嵌入式非关系型(nosql)数据存储

我正在考虑为我的Windows桌面应用程序使用/实现某种嵌入式键值(或文档)存储.我希望能够存储各种类型的数据(GPS轨道就是一个例子),当然也能够查询这些数据.数据量将无法同时加载到内存中.

我正在考虑使用sqlite作为键值存储的存储引擎,类似于y-serial,但是用.NET编写.我还读到了FriendFeed使用MySQL来存储无模式数据,这是如何将RDBMS用于非关系数据的一个很好的指针.sqlite似乎是一个很好的选择,因为它的简单性,可移植性和库大小.

我的问题是嵌入式非关系型商店是否还有其他选择?它不需要是可分发的,也不必支持事务,但它必须可以从.NET访问,并且应该具有较小的下载大小.

更新:我发现了一篇名为SQLite作为键值数据库的文章,它将sqlite与Berkeley DB进行了比较,Berkeley DB是一个嵌入式键值存储库.

.net sqlite embedded-database nosql

21
推荐指数
3
解决办法
8341
查看次数

Android Sqlite IN,NOT IN语法

我正在尝试运行NOT INselect NOT IN列表是动态的.就像是

SELECT id, type FROM CONTACTS where type NOT IN ('connect','answer')
Run Code Online (Sandbox Code Playgroud)

在代码中,我徒劳的尝试是:

db.query(TABLE, new String[] { "id", ""}, " type NOT IN (?)", "connect,answer", 
    null, null, null); // didn't work
db.query(TABLE, new String[] { "id", ""}, " type NOT IN (?)", "'connect','answer'", 
null, null, null); // didn't work
Run Code Online (Sandbox Code Playgroud)

我对此的看法是,?替换将我的逗号列表视为单个参数.我确实找到了一个解决方案,但它相当难看,所以我不会在这里发布它,直到有人提出更优雅的东西

sql sqlite android

21
推荐指数
1
解决办法
4万
查看次数

在Android中将值插入SQLite表

我是android app developpement的新手.我尝试通过以下代码将值插入SQLite数据库;

public class cashbook extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        SQLiteDatabase db;

        db = openOrCreateDatabase(
            "cashbookdata.db"
            , SQLiteDatabase.CREATE_IF_NECESSARY
            , null
            );

        final String Create_CashBook =
            "CREATE TABLE CashData ("
            + "id INTEGER PRIMARY KEY AUTOINCREMENT,"
            + "Description TEXT," 
            + "Amount REAL,"
            + "Trans INTEGER," 
            + "EntryDate TEXT);";

        db.execSQL(Create_CashBook);  
        final String Insert_Data="INSERT INTO CashData VALUES(2,'Electricity',500,1,'04/06/2011')";
        db.execSQL(Insert_Data);
Run Code Online (Sandbox Code Playgroud)

它在模拟器上显示错误 - 应用程序CashBook意外停止.

已创建数据库和表,但值插入不起作用.请帮我解决这个问题.谢谢.

sqlite android

21
推荐指数
2
解决办法
13万
查看次数

在32位和64位C#世界中使用System.Data.SQLite的选项

我理解为什么在32位和64位版本中提供System.Data.SQLite.dll.所以我们不要再纠缠于此并继续前进.:)

由于它以这种方式完成,它似乎使得纯粹的C#开发变得更加困难,有3个选择.

  1. 是仅支持32位并强制使用托管程序集来编译x86并在32或64位运行时处理它,并且当你在64位环境中时会失去优势.

  2. 是强制64位并且仅支持64位并且失去了在32位上运行的能力但是获得了64位的所有优点.

  3. 是创建两个版本的程序集,一个编译x86并使用32位SQLite,另一个编译x64并使用64位SQLite.它阻止使用"ANY"作为编译选项,并且能够轻松地将单个构建部署到任一类型.从开发的角度来管理并不是那么可怕,因为我们需要两个项目.只将C#代码正式放在一个,而另一个只使用"链接"到另一个代码.这仅用于编译目的.仍然让我们必须管理两个输出以进行部署.

尽管如此,我只是在寻找确认以上是唯一正确的选择.

如果我还有其他选择,请告诉我.具体来说,如果有方法可以获得一个可以编译为ANY的单个C#DLL,那么它可以利用32位或64位,具体取决于它的运行位置并仍然使用System.Data.SQLite.dll.

.net c# sqlite 32bit-64bit

21
推荐指数
3
解决办法
2万
查看次数

sqlite3:找不到

我正在尝试使用此处描述的过程访问我的设备上的sqlite数据库:如何查看SQLite数据库(无模拟器)?

但是,我继续找不到sqlite3.我假设我打算在行的开头输入带有#(#)符号的命令.我尝试了它并没有得到任何东西.没有它,我收到错误消息.

sqlite3.exe文件肯定存在于路径中.

我必须安装一些东西吗?

sqlite android adb

21
推荐指数
2
解决办法
4万
查看次数

Android SQLite SELECT查询

String从a中获取了值EditText并将其设置为SELECT QUERY after WHERE条件

TextView tv = (TextView) findViewById(R.id.textView3);
EditTextet2 et = (EditText) findViewById(R.id.editText1);

String name = et.getText().toString();

Cursor c = db.rawQuery("SELECT * FROM tbl1 WHERE name = '"+name+"'", null); 

c.moveToNext();

tv.setText(c.getString(c.getColumnIndex("email")));
Run Code Online (Sandbox Code Playgroud)

但它不起作用.有什么建议?

java sqlite android

21
推荐指数
3
解决办法
13万
查看次数

无法找到请求的.Net Framework数据提供程序 - SQLite

我认为sqlite很简单,但它让我很难过.我只想创建一个应用程序,我可以使用ado.net实体数据类连接到sqlite数据库.

我在运行Windows XP的虚拟计算机上测试应用程序时遇到此问题.当我部署它们时,应用程序在我当前的计算机上以及在我的笔记本电脑上运行正常

以下是虚拟计算机上发生的情况:

  • 该应用程序能够启动.
  • 应用程序能够使用System.Data.SQLite与数据库进行交互
  • 应用程序无法使用ADO.NET Entity数据模型连接到数据库

当我尝试连接时,我得到以下异常:

在此输入图像描述

在此输入图像描述

我知道有很多帖子都在谈论这个,大多数人说你需要为Sqlite下载.NET提供程序.

我已经安装了sqlite-netFx40-setup-bundle-x86-2010-1.0.79.0.exe,我遇到了同样的问题.我该怎么办?


编辑

我设法通过添加以下内容来建立连接:

<system.data>
 <DbProviderFactories>
  <remove invariant="System.Data.SQLite"/>
  <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
  type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
Run Code Online (Sandbox Code Playgroud)

到我的app.config文件.

问题是现在我无法选择数据也不能将记录插入数据库.我尝试插入新记录时遇到的例外情况是:

在类型为"System.Data.SQLite.SQLiteFactory"的商店提供程序实例上调用"GetService"方法后返回null.商店提供商可能无法正常运行.

在此输入图像描述

c# sqlite deployment ado.net

21
推荐指数
1
解决办法
2万
查看次数

拒绝安装sqlite3作为自身的依赖

我有最新版本的node.js构建没有问题.我正在尝试为node.js使用sqlite模块.

对于developseed的node-sqlite3,我按照指示:

git clone git://github.com/developmentseed/node-sqlite3.git
cd node-sqlite3
./configure
make
Run Code Online (Sandbox Code Playgroud)

我安装了npm:curl -k https://npmjs.org/install.sh | sudo sh

并使用npm安装node-gyp:sudo npm install -g node-gyp

在node-sqlite3 configure-d和make-d之后,我尝试用npm安装,我得到这个:

npm install sqlite3
npm WARN install Refusing to install sqlite3 as a dependency of itself
Run Code Online (Sandbox Code Playgroud)

当我研究这个错误时,我发现了这个问题:npm install sqlite3 error我试过:

 node-waf clean || true; node-waf configure build
Run Code Online (Sandbox Code Playgroud)

但得到了这个错误:

/usr/local/bin/../lib/node/wafadmin/Utils.py:136: DeprecationWarning: the md5 module is deprecated; use hashlib instead
from md5 import md5
Waf: Please run waf from a directory containing a file named "wscript" or run distclean …
Run Code Online (Sandbox Code Playgroud)

sqlite node.js npm

21
推荐指数
3
解决办法
3万
查看次数

从Android sqlite数据库中检索大blob

我在Android应用程序的sqlite数据库中存储了大量二进制数据(protobufs),却没有意识到Android Cursor只能容纳最多1MB的数据.我现在知道我应该将这些二进制blob存储在文件中,并且只引用sqlite数据库条目中的文件.

我需要升级数据库(应用程序已经使用了一段时间)才能将这些二进制块移动到文件中.问题是某些用户的数据可能已经超过了1MB的限制,我无法从数据库中检索它(访问Cursor包含大blob的单行的结果IllegalStateException: Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialize before accessing data from it).

如何检索Cursor已存储在sqlite数据库中的大于1MB 限制的二进制blob ?

sqlite android blob cursor protocol-buffers

21
推荐指数
1
解决办法
7721
查看次数