我想要做的就是設置一個字符串等於我的數據庫中的一個條目。我訪問的表格有1列(除了ID列)。我一直在努力爭取一段時間,即使有人問過類似的問題,但我無法使這種情況發揮作用。我很喜歡SQLite中的其他一些命令,但仍然是初學者。這是我的。我敢肯定,一旦這種方法工作,我從另一個類的電話將正常工作。rawQuery不工作在SQLite android
請注意,StringCategory_Table和COLUMN_CATEGORIES都被定義爲字符串。
我的數據庫是用下面的(它工作得很好,除了下面的方法一切)創建:
db.execSQL("CREATE TABLE " + StringCategory_Table + " (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_CATEGORIES + " TEXT NOT NULL);");
,這裏是(使用SQLite開放助手在一個數據庫類創建)問題的方法:
public String getCategory(int catId){
Cursor mycursor = myDatabase.rawQuery("SELECT " + COLUMN_CATEGORIES + " FROM "+ StringCategory_Table +" WHERE " + _ID + " = " + catId, null);
//i no longer use this line:String strCatName = mycursor.toString();
String strCatName = mycursor.getString(mycursor.getColumnIndex(COLUMN_CATEGORIES));
return strCatName;
}
這裏是我上面的代碼的logcat:
09-04 20:05:47.764: E/AndroidRuntime(9232): FATAL EXCEPTION: main
09-04 20:05:47.764: E/AndroidRuntime(9232): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mypackage.namespace/com.mypackage.namespace.MyCurrentRestaurants}: java.lang.NullPointerException
09-04 20:05:47.764: E/AndroidRuntime(9232): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880)
09-04 20:05:47.764: E/AndroidRuntime(9232): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
09-04 20:05:47.764: E/AndroidRuntime(9232): at android.app.ActivityThread.access$600(ActivityThread.java:123)
09-04 20:05:47.764: E/AndroidRuntime(9232): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
09-04 20:05:47.764: E/AndroidRuntime(9232): at android.os.Handler.dispatchMessage(Handler.java:99)
09-04 20:05:47.764: E/AndroidRuntime(9232): at android.os.Looper.loop(Looper.java:137)
09-04 20:05:47.764: E/AndroidRuntime(9232): at android.app.ActivityThread.main(ActivityThread.java:4424)
09-04 20:05:47.764: E/AndroidRuntime(9232): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 20:05:47.764: E/AndroidRuntime(9232): at java.lang.reflect.Method.invoke(Method.java:511)
09-04 20:05:47.764: E/AndroidRuntime(9232): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-04 20:05:47.764: E/AndroidRuntime(9232): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
而不是刪除這個問題,我將解釋什麼的問題是(因爲這將是煩人通過評論挖):
- 我不能只分配一個類字符串到一個SQLite條目我在做。相反,我必須先打開數據庫,然後才能讀取數據庫:由於我需要在讀取數據庫之前打開數據庫,因此需要創建SQLite數據庫類的實例。
- 因爲我使用的是遊標,所以在任何事情都能正常工作之前,我需要使用moveToFirst方法。
感謝今天幫助過我的每一個人,請讓我知道這些結論是否是不正確的,因爲我不想將誤解傳播給像我一樣困惑的人。 亞當
有什麼具體的理由,將光標對象轉換爲字符串? 註釋行必須已經工作。 –
我使用一個字符串變量來膨脹成我已經構建的一些視圖。我認爲如果我不這樣做,我必須改變我已經制作的許多代碼。是否不可能將此對象轉換爲字符串? –