Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何正确寻址到游标中的特定列?_Java_Android_Android Sqlite_Android Cursor - Fatal编程技术网

Java 如何正确寻址到游标中的特定列?

Java 如何正确寻址到游标中的特定列?,java,android,android-sqlite,android-cursor,Java,Android,Android Sqlite,Android Cursor,假设SQLite中有两个表:TBL\u PRODUCT和TBL\u PRODUCT\u别名。现在,我想从合并的两个表中查询一些数据: String sql = "SELECT " + TBL_PRODUCT + "." + C_PROD_PKEY_ID + ", " + TBL_PRODUCT_ALIASES + "." + C_PROD_ALIASES_PKEY_ID + " FROM " + TBL_PRODUCT + " LEFT JOIN " + TBL_PRODUCT_ALIA

假设SQLite中有两个表:
TBL\u PRODUCT
TBL\u PRODUCT\u别名。现在,我想从合并的两个表中查询一些数据:

String sql = "SELECT " + TBL_PRODUCT + "." + C_PROD_PKEY_ID + ", " + TBL_PRODUCT_ALIASES + "." + C_PROD_ALIASES_PKEY_ID +
    " FROM " + TBL_PRODUCT + " LEFT JOIN " + TBL_PRODUCT_ALIASES + " ON " + TBL_PRODUCT + "." + C_PROD_PKEY_ID + " = " + TBL_PRODUCT_ALIASES + "." + C_PROD_ALIASES_PKEY_ID +
    " WHERE " + C_PROD_SERVER_ID + " = ? LIMIT 1";

Cursor cursor = SQLiteDataHelper.getInstance().rawQuery(sql, new String[] {"" + js_CartProduct.getLong("prod_id")});
这很好,没有任何问题。然后我想从返回的游标中获取一些数据:

if (cursor.getCount() > 0) {
    cursor.moveToFirst();
    Long prodId = cursor.getLong(cursor.getColumnIndexOrThrow(TBL_PRODUCT + "." + C_PROD_PKEY_ID));
    //... Some other code
}
现在,问题来了:
C\u PROD\u PKEY\u ID
C\u PROD\u别名\u PKEY\u ID
在现实世界中是相同的字符串:
“\u ID”
。结果
getLong()
光标的所需列返回long not

我应该如何正确地寻址到所需的列?除了在sql查询中使用
AS
,或者/或者在
cursor.getLong(0)
中使用定数而不是
cursor.getLong(cursor.getColumnIndexOrThrow(TBL_PRODUCT+“+C_PROD_PKEY_ID)),还有其他方法吗

更新:


cursor.getColumnNames()
返回以下内容:
[\u-id,\u-id]

您可以向光标索要列名列表并发布它吗?@njzk2完成,请查看修改后的问题。如果您使用AS如何?像“选择”+TBL_产品+“+C_产品”\u PKEY_ID+“作为foo”?这是有效的,是的。但是我在问是否还有其他方法。对不起,没有看到你已经尝试过了。事实上,我不知道其他的方法