- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么我从 url
列的数据库 null
中获取?
我像这样在sqlite中添加数据
void addObjects(Objects object) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(OBJECT_ID,"10" ); // OBJECT Name
values.put(OBJECT_NAME, "H"); // OBJECT Name
values.put(OBJECT_URL, "http://api.androidhive.info/images/sample.jpg"); // OBJECT URL
values.put(OBJECT_TYPE, "image"); // Contact type
System.out.println(values);
// Inserting Row
db.insert(TABLE_OBJECTS, null, values);
db.close(); // Closing database connection
}
日志值的结果www.i I/System.out:TYPE=image NAME=H ID=10 URL=http://api.androidhive.info/images/sample.jpg
然而,当我得到所有结果时,我有 url = null
public List<Objects> getAllObjects() {
List<Objects> Objectslist = new ArrayList<Objects>();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_OBJECTS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Objects object = new Objects();
Log.d("OBJECT_URL", OBJECT_URL);
object.setId(cursor.getInt(cursor.getColumnIndex(OBJECT_ID)));
object.setName(cursor.getString(cursor.getColumnIndex(OBJECT_NAME)));
object.setUrl(cursor.getString(cursor.getColumnIndex(OBJECT_URL)));
// Adding contact to list
Objectslist.add(object);
} while (cursor.moveToNext());
}
这是我正在获取 sqlite 结果的主要 Activity
List<Objects> Objects = db.getAllObjects();
Log.d("he","tttttt");
System.out.println(Objects);
DBadapter adapter = new DBadapter(getApplicationContext(), R.layout.grid_item_layout, Objects);
这是系统输出的结果
[Objects{id=10, name='http://api.androidhive.info/images/sample.jpg', url='null', type='null', category='null'}, Objects{id=10, name='http://api.androidhive.info/images/sample.jpg', url='null', type='null', category='null'}
这是完整的 sqlite 类
public class DatabaseHandler extends SQLiteOpenHelper {
// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;
// Contacts table name
private static final String TABLE_OBJECTS = "OBJECTS";
private static final String OBJECT_ID="ID";
private static final String OBJECT_NAME="NAME";
private static final String OBJECT_TYPE ="TYPE";
private static final String OBJECT_URL ="URL";
private static final String OBJECT_CATEGORY ="CATEGORY";
private static final String OBJECT_DATE_ADDED ="DATE_ADDED";
private static final String OBJECT_USERS_ID ="USERS_ID";
private static final String OBJECT_HIDE_YN ="HIDE_YN";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db){
db.execSQL("DROP TABLE IF EXISTS " + TABLE_OBJECTS);
String CREATE_OBJECTS_TABLE ="CREATE TABLE " +TABLE_OBJECTS+"("
+ OBJECT_ID +" INTEGER PRIMARY KEY AUTOINCREMENT,"
+ OBJECT_NAME +" VARCHAR(100) NULL,"
+ OBJECT_TYPE +" VARCHAR(10) NULL,"
+ OBJECT_URL +" VARCHAR(1000) NULL,"
+OBJECT_CATEGORY +" VARCHAR(50) NULL,"
+OBJECT_DATE_ADDED +" DATETIME NULL,"
+OBJECT_USERS_ID +" NUMERIC(10) NULL,"
+OBJECT_HIDE_YN +" VARCHAR(1) NULL) ";
db.execSQL(CREATE_OBJECTS_TABLE);
}
// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_OBJECTS);
// Create tables again
onCreate(db);
}
/**
* All CRUD(Create, Read, Update, Delete) Operations
*/
// Adding new contact
void addObjects(Objects object) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(OBJECT_ID,"10" ); // OBJECT Name
values.put(OBJECT_NAME, "H"); // OBJECT Name
values.put(OBJECT_URL, "http://api.androidhive.info/images/sample.jpg"); // OBJECT URL
values.put(OBJECT_TYPE, "image"); // Contact type
System.out.println(values);
// Inserting Row
long id = db.insert(TABLE_OBJECTS, null, values);
System.out.println( "id:"+id);
db.insert(TABLE_OBJECTS, null, values);
db.close(); // Closing database connection
}
// Objects object=new Objects(String );
// Getting single contact
Objects geturl(String name) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_OBJECTS, new String[] {OBJECT_URL,
OBJECT_NAME , OBJECT_CATEGORY, OBJECT_TYPE }, OBJECT_NAME + "=?",
new String[] { String.valueOf(name) }, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
Objects object = new Objects(cursor.getString(0),cursor.getString(1),
cursor.getString(2),cursor.getString(3));
return object;
}
// Getting All Contacts
public List<Objects> getAllObjects() {
List<Objects> Objectslist = new ArrayList<Objects>();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_OBJECTS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Objects object = new Objects();
Log.d("OBJECT_URL", OBJECT_URL);
object.setId(cursor.getInt(cursor.getColumnIndex(OBJECT_ID)));
object.setName(cursor.getString(cursor.getColumnIndex(OBJECT_NAME)));
object.setUrl(cursor.getString(cursor.getColumnIndex(OBJECT_URL)));
// Adding contact to list
Objectslist.add(object);
} while (cursor.moveToNext());
}
// return contact list
return Objectslist;
}
// Updating single contact
public int updateContact(Objects object) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(OBJECT_NAME, object.getName()); // OBJECT Name
values.put(OBJECT_URL, object.getUrl()); // OBJECT URL
values.put(OBJECT_TYPE, object.getType()); // Contact type
values.put(OBJECT_CATEGORY, object.getCategory()); // Contact category
// updating row
return db.update(TABLE_OBJECTS, values, OBJECT_ID + " = ?",
new String[] { String.valueOf(object.getId()) });
}
// Deleting single contact
public void deleteContact(Objects objects) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_OBJECTS, OBJECT_ID + " = ?",
new String[] { String.valueOf(objects.getId()) });
db.close();
}
// Getting contacts Count
public int getObjectsCount() {
String countQuery = "SELECT * FROM " + TABLE_OBJECTS;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
cursor.close();
// return count
return cursor.getCount();
}
}
最佳答案
在您的 Objects geturl(String name)
方法中,更改
Cursor cursor = db.query(TABLE_OBJECTS, new String[] {OBJECT_URL,
OBJECT_NAME , OBJECT_CATEGORY, OBJECT_TYPE }, OBJECT_NAME + "=?",
new String[] { String.valueOf(name) }, null, null, null, null);
到
Cursor cursor = db.query(TABLE_OBJECTS, new String[] {OBJECT_ID,
OBJECT_NAME , OBJECT_URL, OBJECT_TYPE }, OBJECT_NAME + "=?",
new String[] { String.valueOf(name) }, null, null, null, null);
假设您的 Objects 类具有以下结构:
public class Objects {
private String id;
private String name;
private String url;
private String type;
// methods
}
您传递给 db.query()
方法必须遵循与 Objects 类中相同的顺序(首先是 id
,第二个 name
,第三个 url
,第四个 输入
)
关于android - sqlite 游标返回列的错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33789991/
我正在尝试使用游标遍历表: DEClARE @ProjectOID as nvarchar (100) DECLARE @TaskOID as nvarchar (100) DECLARE TaskO
使用 JOprionPane 时,光标出现了一些问题。我将光标设置到 pharent 框架,然后使用这个显示一个对话框: Object[] possibilities = {"ham", "spam"
我想将数据从一个表(原始数据,所有列都是 VARCHAR)复制到另一个表(使用相应的列格式进行格式化)。 为了将数据从 rawdata 表复制到 formatted 表中,我使用游标来识别受影响的行。
我先走了 我 100% 属于集合运算阵营。但是当设置逻辑时会发生什么在整个所需的输入域上进行检索会导致如此大的检索,以至于查询显着减慢,变得缓慢,或者基本上需要无限的时间? 在这种情况下,我将使用可能
为什么我不能这样做?我想从 TABLEA 中搜索大于光标值的最接近的值,对两者执行平均函数并将结果放入 test3 中。我收到错误代码 1054 未知列“Xnearest in 'field list
我希望以下存储例程返回一系列行,但它只返回 1: CREATE PROCEDURE example() BEGIN DECLARE current_id INT;
我有一张代表患者体检的表,它有检查 ID 和患者 ID。 我想逐行浏览表格并获取每个患者 ID 并比较其不同的咨询,看看它是否被视为“new_attack”。我正在处理疟疾疾病,我们认为每个在过去 6
如文档所述here ,我需要声明一个在打开时接受参数的游标。 我的查询类似于: DECLARE cur CURSOR (argName character varying) FOR SELECT *
我正在尝试使用 PostgreSQL 学习基本游标。这是我的脚本: DECLARE cur_employees CURSOR FOR SELECT * FROM employee CLOS
*DELIMITER // create procedure test(OUT l_out INT) begin DECLARE done INT DEFAULT FALSE; declare l_s
来自 psycopg2 文档: When a database query is executed, the Psycopg cursor usually fetches all the record
我正在使用 while 循环遍历游标,然后输出数据库中每个点的经度和纬度值。 出于某种原因,它没有返回光标中的最后一组(或第一个取决于我是否使用 Cursor.MoveToLast)经度和纬度值。 这
不知道有没有人试过全新的PHPStorm 4 , 但我遇到了这个新版本的问题,而我以前的主要版本 (PHPStorm 3) 没有。 基本上,当我单击代码 View 空白处的任意位置时,光标会设置在该位
mysql的存储过程、游标 、事务实例详解 下面是自己曾经编写过的mysql数据库存储过程,留作存档,以后用到的时候拿来参考。 其中,涉及到了存储过程、游标(双层循环)、事务。 【说明】:代码
Mysql的存储过程是从版本5才开始支持的,所以目前一般使用的都可以用到存储过程。今天分享下自己对于Mysql存储过程的认识与了解。 一些简单的调用以及语法规则这里就不在赘述,网上有许多例子。这里
我正在使用 SQL Server,我有一个包含 3 列(时间序列)的表 data ,带日期,hour开始,AwardStatus . 大部分奖励状态是随机生成的。有两种选择,授予或未授予。 但是,业务
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
Why am getting duplicate records ? pls correct me.Thanks in Advance. declare clazzes_rec clazzes%r
Why am getting duplicate records ? pls correct me.Thanks in Advance. declare clazzes_rec clazzes%r
我需要在数据表中设置一个非唯一标识符。这在组内是连续的,即。对于每个组,ID 应从 1 开始,并以 1 为增量递增,直到该组的最后一行。 下表对此进行了说明。 “新 ID”是我需要填充的列。 Uniq
我是一名优秀的程序员,十分优秀!