我收到此错误:
Cursor:fillWindow()中的无效语句
这是什么意思?有关如何克服它的任何建议?
这是一个简单的!然而,我错过了一些东西.请帮帮我.在这里,我试图通过id获取值,但不能这样做.即使在更改id的值后,它也会返回相同的值.
db = openOrCreateDatabase("DBSOURCE", 0, null);
Cursor cursorc = db.rawQuery("SELECT * FROM LIST WHERE ID="+id+"", null);
cursorc.moveToFirst();
int NameID = cursorc.getColumnIndex("Name");
int mobilenumberID = cursorc.getColumnIndex("MoblieNumber");
edName.setText(cursorc.getString(NameID));
edMobNum.setText(cursorc.getString(mobilenumberID));
cursorc.close();
db.close();
Run Code Online (Sandbox Code Playgroud) 我在本网站上搜索了与此相关的各种问题,但我无法解决我得到的问题.
我想点击listview项目从数据库中获取id
这是我的类别类:
package com.example.reminders;
import java.util.List;
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class Categories extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DBAdapter db = new DBAdapter(Categories.this);
db.open();
List<String> cs = db.getAllCategoriesList();
setListAdapter(new ArrayAdapter<String>(this, R.layout.activity_categories,cs));
ListView listView = getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the …Run Code Online (Sandbox Code Playgroud) 我在android中使用ormlite并成功创建表并使用DAO执行不同的操作.
但是如果从主表中删除主键,我就一直在删除外键行.
我有两个名为Parent和child的表.父母有多个孩子,所以我将孩子与外键联系起来.
代码:
父表:
@DatabaseField(id = true)
private Integer id;
@ForeignCollectionField(eager = false)
private ForeignCollection<Child> childCollection;
Run Code Online (Sandbox Code Playgroud)
子表:
@DatabaseField(id = true)
private Integer id;
@DatabaseField(foreign = true, foreignAutoRefresh = true, canBeNull = false,
index = true, columnDefinition = "INTEGER REFERENCES parent(id) ON DELETE CASCADE")
private Parent parent;
Run Code Online (Sandbox Code Playgroud)
现在如果我删除特定id的父行,那么这不会从子表中删除子项.
public void deleteById(Integer parentId) {
try {
Dao<Parent, Integer> parentDao = databaseHelper.getParentDao();
parentDao .deleteById(parentId);
} catch (SQLException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
请指导我,我做错了.我曾多次尝试和谷歌,但没有运气.
橱柜(https://bitbucket.org/qbusict/cupboard)是一个非常方便的库,但不幸的是它不支持将列表映射到数据库,并且需要手动处理列表.但是处理它们的方法是什么?
我想用greendao从sqlite数据库加载所有实体并对结果进行排序.
我可以使用loadAll加载所有实体,但这并不能保证对结果列表的排序.
CSV数据库与Android中的SQLite数据库相比如何?
查看StackOverflow上的其他问题,并阅读Android Developer Documentation,我看到SQLite数据库的使用频率远高于从CSV文件中读取数据.还有一些问题,用户希望将CSV文件导入SQLite数据库(例如,此问题或此问题).使用SQLite而不是CSV有优势吗?
我尝试过使用CSV和SQLite一点点,在性能方面我没有看到很大的区别,但如果我在这里错了,请纠正我.
据我所知,有不同的读取CSV文件的方法,我打开并使用BufferedReader类似的方式读取它:
BufferedReader reader =
new BufferedReader(new InputStreamReader(context.getAssets().open(fileName)));
Run Code Online (Sandbox Code Playgroud)
SQLite数据库以通常的方式打开:
SQLiteDatabase db = helper.getReadableDatabase();
Run Code Online (Sandbox Code Playgroud)
我不太确定功能上的差异,虽然我假设SQLite更容易管理和过滤,这就是我问这个问题的原因.
总结一下:
SQLiteDatabase类?为了澄清,我知道CSV文件只是一个用逗号分隔值的文件,即不是作为SQL数据库的"数据库".但是,我仍然可以将CSV文件用作一种数据库,其中逗号分隔值表示不同的列,也可以通过检查特定列是否与特定值匹配来过滤.所以我问哪个更好从中读取数据.
假设我们有以下实体:项目:
class Item {
...
@Index(unique=true)
private String guid;
...
@ToMany
@JoinEntity(entity = JoinItemsWithTags.class, sourceProperty = "itemGuid", targetProperty = "tagName")
private List<Tag> tagsWithThisItem;
...
}
Run Code Online (Sandbox Code Playgroud)
标签:
class Tag {
@Id
private Long localId;
@Index(unique = true)
private String name;
...
}
Run Code Online (Sandbox Code Playgroud)
我们需要加入他们.这是我的连接实体类:
@Entity(nameInDb = "item_tag_relations")
class JoinItemsWithTags {
@Id
private Long id;
private String itemGuid;
private String tagName;
...
}
Run Code Online (Sandbox Code Playgroud)
我想使用标记名称作为连接属性而不是Long id,因为在与服务器同步时更容易支持一致性.但是当前Item类中的标签getter总是返回一个空列表.我查看了日志并找到了在getter中内部使用的生成查询:
SELECT * <<-- there were a long sequence of fields
FROM "tags" T JOIN item_tag_relations J1
ON T."_id"=J1."TAG_NAME" …Run Code Online (Sandbox Code Playgroud) 如何使用Room Persistence Library检测表是否没有条目?我找不到有关如何解决此问题的任何信息。
android android-sqlite android-room android-architecture-components
我的应用崩溃了,因为我没有正确处理迁移。我正在寻找一种迁移表中1列名称的解决方案。
在我的项目中,我有一个名为“ content ” 的房间表,其双人间属性为“ archivedCount ”。在该应用程序的最新版本中,属性archivedCount属性重命名为dismissCount,仍为Double类型。
原始内容模型
@Entity(tableName = "content")
data class Content(@PrimaryKey var id: String, var archiveCount: Double) : Parcelable {...}
Run Code Online (Sandbox Code Playgroud)
新内容模型
@Entity(tableName = "content")
data class Content(@PrimaryKey var id: String, var dismissCount: Double) : Parcelable {...}
Run Code Online (Sandbox Code Playgroud)
阅读了Google Developer Advocate的解释《用Room进行迁移》后,我尝试了在文章的“ 使用复杂的模式进行迁移 ”一节中概述的解决方案,该过程包括复制原始表,删除旧表,然后重命名新创建的表。
使用下面的以下方法,在此行上会出现运行时错误:database.execSQL("INSERT INTO content_new (id, dismissCount) SELECT id, archiveCount FROM users");因为我已经清除了应用程序的缓存,所以旧表不再存在。
是否可以在不重新创建整个表的情况下更新单个列?
static final Migration MIGRATION_1_2 = new Migration(1, 2) { …Run Code Online (Sandbox Code Playgroud) android ×10
android-sqlite ×10
android-room ×2
greendao ×2
sqlite ×2
android-architecture-components ×1
csv ×1
database ×1
greendao3 ×1
java ×1
orm ×1
ormlite ×1
sql ×1