我的android应用程序使用SQLITE。 当我尝试从某个表中检索数据时,一切正常,除了特别是varchar类型的一列并且包含一个巨大的文本(base64字符串将被转换为文件)。
当我尝试从此表中检索任何其他列时,检索成功,但在此列上我收到错误:
java.lang.IllegalStateException: Couldn't read row 0, col 0 from CursorWindow. Make sure the
Cursor is initialized correctly before accessing data from it.
这是我的代码:
String Filequery= "Select FileName from Hyperlinks_GVT where Taskcode='"+currentTaskCode+"'
and Name='"+tempItem.getText()+"'";
Log.d(TAG,"Query is: "+Filequery);
try {
cursor3 = MainActivity.myDataBase.rawQuery(Filequery, null);
String Data="";
byte[] btData;
if (cursor3 != null && cursor3.moveToFirst()){
do {
Data=cursor3.getString(cursor3.getColumnIndex("FileName"));
} while (cursor3.moveToNext());
}
cursor3.close();
表:
CREATE TABLE [Hyperlinks_GVT](
[ID] integer PRIMARY KEY AUTOINCREMENT NOT NULL,
[Taskcode] [int] NOT NULL,
[TaskYear] [int] NOT NULL,
[Name] [varchar](100) NOT NULL,
[FileName] [varchar] NOT NULL,
[Notes] [varchar](200) NOT NULL,
[UserID] [nvarchar](50) NOT NULL,
[CreationDT] [varchar](100) NOT NULL)
FIleName是包含大数据的列 注意:当我使用SQLITE Manager在Firefox中执行查询时,查询将检索结果,因此查询正常并且没有错误。 任何帮助将不胜感激。
答案 0 :(得分:-1)
尝试这个: 将文件名的数据类型从varchar更改为TEXT。