Я показываю все доступные таблицы из моей базы данных в виде списка.
Но если там нет никаких таблиц, тогда будет указатель Numm Exception.
Код как ниже:
public ArrayList<Object> showAllTable()
{
ArrayList tableList = new ArrayList ();
String SQL_GET_ALL_TABLES = "SELECT name FROM sqlite_master WHERE type='table'";
Cursor cursor = db.rawQuery(SQL_GET_ALL_TABLES, null);
//////////////////
if (cursor.moveToLast())
{
do
{
if(cursor.getString(0).equals("android_metadata"))
{
//System.out.println("Get Metadata");
continue;
}
else
{
tableList.add(cursor.getString(0));
}
}
while (cursor.moveToPrevious());
}
///////////////////////
cursor.close();
return tableList;
}
Пожалуйста, помогите мне в этом
И исключение, которое я получил, выглядит так:
09-09 09:57:25.873: ERROR/AndroidRuntime(574): FATAL EXCEPTION: main
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): android.database.sqlite.SQLiteException: около «ноль»: синтаксическая ошибка: создать нулевой номер таблицы (первичный ключ целого числа _id, текст isbn не ноль, заголовок текст не нулевой, слово текст не нулевой, звуковой текст не нулевой, текст издателя не нулевой);
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): в android.database.sqlite.SQLiteDatabase.native_execSQL (собственный метод)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): в android.database.sqlite.SQLiteDatabase.execSQL (SQLiteDatabase.java:1727)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): в com.quiz.spellingquiz.DBAdapter $ DatabaseHelper.onCreate (DBAdapter.java:68)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): в android.database.sqlite.SQLiteOpenHelper.getWritableDatabase (SQLiteOpenHelper.java:106)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): на com.quiz.spellingquiz.DBAdapter.open (DBAdapter.java:88)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): на com.quiz.spellingquiz.MenuPage $ 2.onClick (MenuPage.java:51)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): на android.view.View.performClick (View.java:2408)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): на android.view.View $ PerformClick.run (View.java:8816)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): на android.os.Handler.handleCallback (Handler.java:587)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): на android.os.Handler.dispatchMessage (Handler.java:92)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): на android.os.Looper.loop (Looper.java:123)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): на android.app.ActivityThread.main (ActivityThread.java:4627)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): на java.lang.reflect.Method.invokeNative (собственный метод)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): в java.lang.reflect.Method.invoke (Method.java:521)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626)
09-09 09: 57: 25.873: ОШИБКА / AndroidRuntime (574): в dalvik.system.NativeStart.main (собственный метод)
Итак, дайте мне решение, как решить это. , , Спасибо.
Линия на 68:
private static class DatabaseHelper extends SQLiteOpenHelper
{
DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
//db.execSQL(DATABASE_CREATE);
// под строкой 68
db.execSQL («создать таблицу» + DATABASE_TABLE + «(целочисленный первичный ключ _id»)
+ "isbn text not null"
+ "текст заголовка не нулевой"
+ "текст слова не нуль"
+ "звуковой текст не нулевой"
+ "текст издателя не нулевой);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,int newVersion)
{
Log.w(TAG, "Upgrading database from version "+oldVersion+" to "+newVersion+", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS "+DATABASE_TABLE);
onCreate(db);
}
}