ورود

View Full Version : مشکل در insert به دیتابیس



abbasalim
چهارشنبه 23 مرداد 1392, 10:48 صبح
بنام خدا
سلام
به یه مشکل برخوردم هرکار میکنم نمیفهمم چرا ارور میده :
یه دیتابیس سالم دارم که کامل کار میکنه یه دیتابیس دیگه هم دارم که داخل دیتاسورس اینجوری مقداردهی می کنم :

public boolean addToFav(Amaliat amaliat) {
ContentValues values = new ContentValues();
values.put(DBOpenHelper.COLUMN_ID, amaliat.getId());
Long result = database.insert(DBOpenHelper.TABLE_FAV, null, values);


return (result != -1);
}


وقتی در یه کلاس دیگه صداش میزنم تا values.put(DBOpenHelper.COLUMN_ID, amaliat.getId()); رو پیس میره ولی insert رو که میرسه ارور میده :



08-14 11:22:47.130: E/AndroidRuntime(3034): FATAL EXCEPTION: main
08-14 11:22:47.130: E/AndroidRuntime(3034): java.lang.RuntimeException: Unable to start activity ComponentInfo{ir.esfandune.amaliat20/ir.esfandune.amaliat20.Joziat}: java.lang.NullPointerException
08-14 11:22:47.130: E/AndroidRuntime(3034): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:1647)
08-14 11:22:47.130: E/AndroidRuntime(3034): at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:1663)
08-14 11:22:47.130: E/AndroidRuntime(3034): at android.app.ActivityThread.access$1500(ActivityThr ead.java:117)
08-14 11:22:47.130: E/AndroidRuntime(3034): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:931)
08-14 11:22:47.130: E/AndroidRuntime(3034): at android.os.Handler.dispatchMessage(Handler.java:99 )
08-14 11:22:47.130: E/AndroidRuntime(3034): at android.os.Looper.loop(Looper.java:123)
08-14 11:22:47.130: E/AndroidRuntime(3034): at android.app.ActivityThread.main(ActivityThread.jav a:3683)
08-14 11:22:47.130: E/AndroidRuntime(3034): at java.lang.reflect.Method.invokeNative(Native Method)
08-14 11:22:47.130: E/AndroidRuntime(3034): at java.lang.reflect.Method.invoke(Method.java:507)
08-14 11:22:47.130: E/AndroidRuntime(3034): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:839)
08-14 11:22:47.130: E/AndroidRuntime(3034): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:597)
08-14 11:22:47.130: E/AndroidRuntime(3034): at dalvik.system.NativeStart.main(Native Method)
08-14 11:22:47.130: E/AndroidRuntime(3034): Caused by: java.lang.NullPointerException
08-14 11:22:47.130: E/AndroidRuntime(3034): at ir.esfandune.amaliat20.DBDatasource.addToFav(DBDat asource.java:116)
08-14 11:22:47.130: E/AndroidRuntime(3034): at ir.esfandune.amaliat20.Joziat.onCreate(Joziat.java :82)
08-14 11:22:47.130: E/AndroidRuntime(3034): at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1047)
08-14 11:22:47.130: E/AndroidRuntime(3034): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:1611)
08-14 11:22:47.130: E/AndroidRuntime(3034): ... 11 more

rubiks.kde
چهارشنبه 23 مرداد 1392, 11:04 صبح
اگه میشه کد رو کامل بزارید.
الان مشکل این هست که یه چیزی null هست.

hamyd_reza
چهارشنبه 23 مرداد 1392, 11:08 صبح
----------

abbasalim
چهارشنبه 23 مرداد 1392, 11:15 صبح
این کده :خجالت:خنده نکنین :لبخند:
http://dl.esfandune.ir/images/838zpu5p91m8g20w8wx.zip

abbasalim
چهارشنبه 23 مرداد 1392, 13:16 عصر
نفهمدین چه مشکلی داره ؟‌:ناراحت:

rubiks.kde
چهارشنبه 23 مرداد 1392, 14:20 عصر
مشکل به دلیل نال بودن database توی خط زیر بود
result = database.insert(DBOpenHelper.TABLE_FAV, null, values);

که باید قبل از استفاده پایگاه داده رو باز میکردی من کد زیر رو قبل از استفاده توی اکتیویتی Joziat زدم و درست شد.
datasource.open();
if (datasource.addToFav(amaliat)) {
Log.i(DBOpenHelper.LOGTAG, "Tour added");
} else {
Log.i(DBOpenHelper.LOGTAG, "Tour not added");
}