2016-08-07 4 views
2

私は非常にという簡単なデータベース android appを作成しました。それは入力と表示の結果を取ります。追加ボタンは、SQLiteデータベースに格納されている入力を削除するための入力および削除ボタンを追加するために使用されます。私のカーソルのAndroidのSQLiteは正しく指されていますが、まだ私はエラーに直面しています:原因:java.lang.IllegalStateException:行0、列-1をCursorWindowから読み取ることができませんでした。カーソルがデータにアクセスする前に、カーソルが正しく初期化されていることを確認してください。以下はカーソル部分です: カーソルc = db.rawQuery(query、null);エラー:行0、列-1をCursorWindowから読み取ることができませんでした。データにアクセスする前にカーソルが正しく初期化されていることを確認してください

c.moveToFirst(); 

    //Traversing through DB 
    while (!c.isAfterLast()){ 
     if(c.getString(c.getColumnIndex("studentname")) !=null) 
     { 
      dbString += c.getString(c.getColumnIndex("studentname")); 
      dbString +="\n"; } 

     c.moveToNext(); } 
     db.close(); 

     return dbString; 

カーソルの位置を変更しようとしましたが、同じエラーが表示されました。私は他のサイトで研究しており、概念も同じだが問題は残っている。

答えて

3

c.getColumnIndex("studentname")-1を返す場合は、結果セットにはstudentnameという列はありません。

+0

あなたは100%正しいです。私の悪い、それはStudentNameで学生名ではありません。ありがとうCommonsWare、あなたは私が約2時間苦労していた私の間違いを解決しました。私は次回私の命名規則で非常に注意します。アプリは今、完璧に正常に動作します。再度ありがとうと世話をする:) –

2

CommonsWareが前に述べたように、これは明らかにそのような名前の列はなく、絶対に真実であるように見えます。私の列名はstudentnameであり、学生名ではないので、適切な列名に関して間違いがあり、結果として-1(何も列がない)になりました。私の愚かな間違いを指摘するためのCommonsWareに感謝します:)

For those who want to start SQLite understanding with android, can check this course which I am also a part of and learning from it currently : https://www.udemy.com/androidcourse/ available at Udemy

関連する問題

 関連する問題