用于在Android中的SQLite中创建表的运行时异常
日志:用于在Android中的SQLite中创建表的运行时异常,android,Android,日志: 用逗号分隔这些值,如 10-09 13:41:49.807: E/SQLiteLog(16458): (1) near "AUTOINCREMENTuser_name": syntax error 10-09 13:41:49.824: E/AndroidRuntime(16458): FATAL EXCEPTION: main 10-09 13:41:49.824: E/AndroidRuntime(16458): java.lang.RuntimeException: Unable
用逗号分隔这些值,如
10-09 13:41:49.807: E/SQLiteLog(16458): (1) near "AUTOINCREMENTuser_name": syntax error
10-09 13:41:49.824: E/AndroidRuntime(16458): FATAL EXCEPTION: main
10-09 13:41:49.824: E/AndroidRuntime(16458): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.adjetter.databasestorage/com.adjetter.databasestorage.MainActivity}: android.database.sqlite.SQLiteException: near "AUTOINCREMENTuser_name": syntax error (code 1): , while compiling: CREATE TABLE user_details_table (id INTEGER PRIMARY KEY AUTOINCREMENTuser_name TEXT NOT NULL password TEXT NOT NULLsex TEXT NOT NULL email TEXT NOT NULL remember_me TEXT );
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.app.ActivityThread.access$600(ActivityThread.java:162)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.os.Handler.dispatchMessage(Handler.java:107)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.os.Looper.loop(Looper.java:194)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.app.ActivityThread.main(ActivityThread.java:5371)
10-09 13:41:49.824: E/AndroidRuntime(16458): at java.lang.reflect.Method.invokeNative(Native Method)
10-09 13:41:49.824: E/AndroidRuntime(16458): at java.lang.reflect.Method.invoke(Method.java:525)
10-09 13:41:49.824: E/AndroidRuntime(16458): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
10-09 13:41:49.824: E/AndroidRuntime(16458): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
10-09 13:41:49.824: E/AndroidRuntime(16458): at dalvik.system.NativeStart.main(Native Method)
10-09 13:41:49.824: E/AndroidRuntime(16458): Caused by: android.database.sqlite.SQLiteException: near "AUTOINCREMENTuser_name": syntax error (code 1): , while compiling: CREATE TABLE user_details_table (id INTEGER PRIMARY KEY AUTOINCREMENTuser_name TEXT NOT NULL password TEXT NOT NULLsex TEXT NOT NULL email TEXT NOT NULL remember_me TEXT );
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:886)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:497)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1663)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1594)
10-09 13:41:49.824: E/AndroidRuntime(16458): at com.adjetter.databasestorage.DBHelper.onCreate(DBHelper.java:38)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
10-09 13:41:49.824: E/AndroidRuntime(16458): at com.adjetter.databasestorage.MainActivity.onCreate(MainActivity.java:60)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.app.Activity.performCreate(Activity.java:5122)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1084)
10-09 13:41:49.824: E/AndroidRuntime(16458): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
10-09 13:41:49.824: E/AndroidRuntime(16458): ... 11 more
还可以在每个逗号后面设置一个空格。您需要用逗号分隔列声明
" (id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "user_name TEXT NOT NULL, "
注:为了避免下次被否决,你可能想问一个问题。这比转储代码和日志更友好。id INTEGER主键自动递增+用户名文本非空在用户名前设置一个空格。我建议您锁定该语句并在sqlite浏览器中尝试。然后看看你在自动递增附近的错误user_name:下次你写问题时。。。如果你希望有人花时间回答你的问题,那就找时间和体面地“问”一个问题,就像粘贴错误日志一样。
" (id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "user_name TEXT NOT NULL, "
public static final String CREATE_USER_DETAILS_TABLE = " CREATE TABLE "
+ "user_details_table ("
+ "id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "user_name TEXT NOT NULL, "
+ "password TEXT NOT NULL, "
+ "sex TEXT NOT NULL, "
+ "email TEXT NOT NULL, "
+ "remember_me TEXT ); ";