从SQLITE检索数据时出错

时间:2014-12-10 08:35:30

标签: java android sqlite

我的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中执行查询时,查询将检索结果,因此查询正常并且没有错误。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:-1)

尝试这个: 将文件名的数据类型从varchar更改为TEXT。