我有一个拥有大约100个表的数据库。在所有的表中,所有的字段都有不同的数据类型,比如int,string等。现在的要求是。将SELECT查询中的所有字段作为字符串返回
当我使用Select查询任何表时,它应该给我特定表的所有字段作为字符串类型。如果select查询可以将所有字段提供为字符串,那么我不需要为int
数据类型编写cursor.getInt()
。到处都是我只需要使用cursor.getString()
。
请告诉我这样一个选择查询,返回所有字段作为字符串类型。
我有一个拥有大约100个表的数据库。在所有的表中,所有的字段都有不同的数据类型,比如int,string等。现在的要求是。将SELECT查询中的所有字段作为字符串返回
当我使用Select查询任何表时,它应该给我特定表的所有字段作为字符串类型。如果select查询可以将所有字段提供为字符串,那么我不需要为int
数据类型编写cursor.getInt()
。到处都是我只需要使用cursor.getString()
。
请告诉我这样一个选择查询,返回所有字段作为字符串类型。
嗨@Nil你需要转换INT为字符串像::“选择投从some_table(some_integer_column文本)”查询
是的,这是部分正确的答案。但我需要所有字段作为文本。而且我不想为每一列编写这个'cast(some_integer_column as text)'。因为有一些表有超过100个字段。 – nil
请检查下面的代码片段。 getTableContents
返回包含另一个ArrayList
或String
数据的ArrayList
。内部列表是String
格式的表中每个元组/行的内容。如果需要,getAsString
方法包含检查数据类型的实际操作,并转换为String
。
public ArrayList<ArrayList<String>> getTableContents(String inStrQuery, String[] selectionArgs){
ArrayList<ArrayList<String>> rows = new ArrayList<ArrayList<String>>();
//Check database and open if required
if(null == database){
open();
}
Cursor cursor = database.rawQuery(inStrQuery, selectionArgs);
try {
cursor.moveToFirst();
while(!cursor.isAfterLast()){
ArrayList<String> row = new ArrayList<String>();
int columnCount = cursor.getColumnCount();
for(int c=0; c< columnCount; c++){
row.add(getAsString(cursor, c));
}
rows.add(row);
cursor.moveToNext();
}
}finally{
cursor.close();
}
return rows;
}
public static String getAsString(Cursor cursor, int colIndex){
String retVal = null;
if(null != cursor){
switch(cursor.getType(colIndex)){
case Cursor.FIELD_TYPE_INTEGER:
retVal = String.valueOf(cursor.getInt(colIndex));
break;
case Cursor.FIELD_TYPE_BLOB:
retVal = String.valueOf(cursor.getBlob(colIndex));
break;
case Cursor.FIELD_TYPE_FLOAT:
retVal = String.valueOf(cursor.getFloat(colIndex));
break;
case Cursor.FIELD_TYPE_NULL:
retVal = String.valueOf(null);
break;
case Cursor.FIELD_TYPE_STRING:
retVal = cursor.getString(colIndex);
break;
}
}
return retVal;
}
但是使用cursor.getInt – KOTIOS
@Monica问题:我想他要填写一些用户界面,而不考虑每个字段的类型。我可能会想到其他六个原因,为什么这可能有用。 –
@Monica我有自动生成的功能,从所有100个表格中选择数据,并提供所有表格数据的个别数组列表。现在在相同的功能我需要写cursor.getString(columnname),如果数据类型是int然后cursor.getInt(ColumnName)。但我不知道哪个字段有int和哪个字段有字符串。所以我想每个字段都是String。 – nil