-1
私はSQLiteのデータベースにテーブルを作成するために、次のコードを使用しています:sqliteのすべてのデータのid自動増分を取得するには?
db =openOrCreateDatabase("MukilProgram", Context.MODE_PRIVATE,null);
db.execSQL("CREATE TABLE IF NOT EXISTS proname(ID INTEGER PRIMARY KEY AUTOINCREMENT,ImageID INTEGER,Title TEXT,FromTiming INTEGER,ToTiming INTEGER);");
rowItems = new ArrayList<Program>();
for (int i = 0; i < titles.length; i++) {
Program item = new Program(images[i], titles[i],fromtime[i],totime[i]);
rowItems.add(item);
}
マイ挿入クエリは次のとおりです。
for (int i = 0; i < adapter.getCount(); i++) {
Program rowItem = (Program) adapter.getItem(i);
iImageId = rowItem.getImageId();
sTitle = rowItem.getTitle();
sFrom = rowItem.getFromtime();
sTo = rowItem.getTotime();
//sQuantity = rowItem.getQuantity();
db.execSQL("INSERT INTO proname VALUES("+ iImageId + ",'" + sTitle + "','"+sFrom+"','"+sTo+"');");
//Toast.makeText(MainActivity.this, "Added to the Table..", Toast.LENGTH_SHORT).show();
}
エラーが表示さ:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.apple.myapplication/com.example.apple.myapplication.MainActivity}: android.database.sqlite.SQLiteException: table proname has 5 columns but 4 values were supplied (code 1): , while compiling: INSERT INTO proname VALUES(2130837596,'Ippadikku Idhayam','10:30','12:30');
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.database.sqlite.SQLiteException: table proname has 5 columns but 4 values were supplied (code 1): , while compiling: INSERT INTO proname VALUES(2130837596,'Ippadikku Idhayam','10:30','12:30');
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1672)
at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1603)
at com.example.apple.myapplication.MainActivity.onCreate(MainActivity.java:142)
at android.app.Activity.performCreate(Activity.java:5231)
私がすることができません私のデータのIDをデータベースに設定します。
かなり明確 'テーブルpronameは5列を持っていますが、4つの値は、これらの4つの列があることが何であるかsupplied' speficyました挿入しようとしています。あなたがいる間に、文字列連結の代わりに準備文を使用する – e4c5
[Android SQLite自動インクリメント](http://stackoverflow.com/questions/8434819/android-sqlite-auto-increment)の可能な複製 – Nithinlal
INSERT INTO pronameを試してくださいImageID、タイトル、FromTiming、ToTiming)VALUES( "+ iImageId +"、 "+ sTitle +" '、+ sFrom + "'、+" + sTo + "') – Raghavendra