Articles of SQLite

无法读取第0行,第-1列

我正在尝试复制我使用SQLite管理器创建的数据库,其中我做了: CREATE TABLE “android_metadata” (“locale” TEXT DEFAULT ‘en_US’) 和 INSERT INTO “android_metadata” VALUES (‘en_US’) 我将所有主键命名为_id 。 我的数据库被复制(在第一次运行时,logcat中有各种红色消息); 此后,它只在我查询时出错。 主要活动 public class MainActivity extends Activity { String CNAME=” ques”,TABLE_NAME=” JAVAQ”; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Setupdb dbobj=new Setupdb(this); try { //dbobj.close(); dbobj.createDataBase(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); […]

如何从Android中的SQLite中删除所有项目

我想创建一个用户单击按钮的应用程序,并清除SQLite数据库。 这是我到目前为止所尝试的内容: db.delete(TABLE_NAME, null, null); 我究竟做错了什么?

由于java.lang.IllegalArgumentException,应用程序因启动而崩溃:列’_id’不存在

每当我启动我的应用程序时,我都会得到一个java.lang.IllegalArgumentException: column ‘_id’ does not exist我的LogCat中的java.lang.IllegalArgumentException: column ‘_id’ does not exist错误。 我创建了列’_id’ ,但它仍然会抛出这个。 这是我的主要.java: package com.gantt.shoppinglist; import android.app.Dialog; import android.app.ListActivity; import android.database.Cursor; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleCursorAdapter; public class ShoppingList extends ListActivity { private DataHelper DataHelper; /** Called when the activity is first created. */ @Override […]

Android – sqlite in子句使用数组中的值

我想执行一个sqlite查询: select * from table_name where id in (23,343,33,55,43); in子句中的值需要从字符串数组中获取: String values[] = {“23″,”343″,”33″,”55″,”43”} 我怎样才能做到这一点? 10X!

Android SQLite SELECT查询

我从EditText获取了String值,并SELECT QUERY after WHERE条件SELECT QUERY after WHERE将其设置在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”))); 但它不起作用。 有什么建议么?

调用Rooms inMemoryBuilder方法时,Room Persistence Library运行时exception

按照设置Room余好库的教程时,我在Android设备上测试时遇到此错误。 java.lang.RuntimeException:找不到PackageName .AppDatabase的实现。 AppDatabase_Impl不存在 我知道有一个类似的问题,但问题是由于kotlin gradle问题。 可能重复 测试类: @RunWith(AndroidJUnit4.class) public class LocalDatabaseTest { private PhotoDao mPhotoDao; private AppDatabase mDb; @Before public void createDb() { Context context = InstrumentationRegistry.getTargetContext(); mDb = Room.inMemoryDatabaseBuilder(context.getApplicationContext(), AppDatabase.class).build(); mPhotoDao = mDb.photoDao(); } @After public void closeDb() throws IOException { //mDb.close(); } @Test public void testPreConditions() { assertNotNull(mDb); } 道: @Dao public […]

在Android上的SQLite中查询和使用游标

不确定我是否是唯一感受到这一点的人…… 我发现在android中使用sqlite api完全痛苦的屁股和漂亮的灵魂摧毁。 有没有人得到任何提示/助手让我的生活更轻松? 这是我正在谈论的一个例子。 //create code db.execSQL(“CREATE TABLE ” + CUSTOMER_TABLE_NAME + ” (” + GENERIC_ID_KEY+ ” INTEGER PRIMARY KEY NOT NULL, ” + PHONE_KEY + ” INTEGER NOT NULL, ” + CUSTOMER_NAME_KEY+ ” TEXT NOT NULL, ” + EMAIL_KEY + ” TEXT NOT NULL, ” + ADDRESS_KEY +” TEXT);”); //get code Cursor mCursor […]

数据库未在OnePlus Two中正确复制

我正在创建一个Android应用程序,我正在使用sqlite数据库。 因为我已经在项目的资产文件夹中放置了一个sqlite文件,我在使用下面的代码首次执行应用程序时将此文件复制到手机。 private void copyDataBase() throws IOException { new File(DB_PATH).mkdirs(); InputStream myInput = appContext.getAssets().open(DB_NAME); String outFileName = DB_PATH + DB_NAME; OutputStream myOutput = new FileOutputStream(outFileName); byte[] buffer = new byte[1024]; int length; while ((length = myInput.read(buffer)) > 0) { myOutput.write(buffer, 0, length); } myOutput.flush(); myOutput.close(); myInput.close(); } 但我得到了这个错误。 09-21 18:03:56.841: E/SQLiteLog(7850): (1) no such table: […]

数据库处理有2个进程

我有一个有2个部分的应用程序。 创建内容的服务。 使用内容的应用程序 每个都作为不同的进程运行。 问题是它们都共享一个数据库。 当服务尝试写入某些内容并且UI正在读取数据时,我经常会遇到数据库锁定错误。 反之亦然。 怎么办呢? 用于访问DB的类是单例类。 但由于UI和服务都是两个不同的过程,我认为有两个单身。 所以这没有用。 因为2个不同的过程,即使是synchronise也无济于事。 Content Providers可能是一个选项,但由于我使用复杂的查询来挖掘信息,因此也很难使用它。 如何让两个进程共享数据库。 任何提示将不胜感激。

如何限制Android SQLite表中的行数

我创建了一个具有“最新历史”的Android应用。 我想将此表的大小限制为最多50行(根据其插入日期)。 我看到几个线程讨论限制删除行的数量,但我不确定在Android的SQLite中是否启用了此function。 有人可以帮忙吗? 谢谢