View Full Version : خواندن کل رکورد های دیتابیس
ho3ein.3ven
سه شنبه 20 اسفند 1392, 08:23 صبح
با سلام
من قصد دارم کل اطلاعات دیتابیس رو بخونم . تابع زیر رو نوشتم ولی موقع اجرا اررور میده .
public List<String> getAllStudents() { List<String> contacts = new ArrayList<String>();
Cursor cursor = database.query(dbHelper.getTableName(), null, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
String student = cursor.getString(1);
contacts.add(student);
cursor.moveToNext();
}
// Make sure to close the cursor
cursor.close();
return contacts;
}
اگه دوستان کمک کنن که چرا این تابع اررور میده ممنون میشم. با تشکر
ho3ein.3ven
سه شنبه 20 اسفند 1392, 10:23 صبح
تشکر بابت پاسخ
اگه امکانش هست کد بالا را اصلاح کنید . ممنون
rubiks.kde
سه شنبه 20 اسفند 1392, 10:49 صبح
اگه امکان داره متن خطا رو قرار بدید.چون ظارهر کار مشکلی نداره
ho3ein.3ven
سه شنبه 20 اسفند 1392, 12:43 عصر
unfortunately , school has stoped
saeed_g21
سه شنبه 20 اسفند 1392, 12:54 عصر
اینو تست کن ببین درست میشه من منظورت رو نفهمیدم اما یک تغییراتی دادم بایستی Query مربوطه رو در اینجا بنویسی یا String اونو بدی بهش
public List<String> getAllStudents() {List<String> contacts = new ArrayList<String>();
}
Cursor cursor = database.rawQuery("select name from {Table Name}", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
String student = cursor.getString(cursor.getColumnIndex("name"));
contacts.add(student);
cursor.moveToNext();
}
// Make sure to close the cursor
cursor.close();
return contacts;}
ho3ein.3ven
سه شنبه 20 اسفند 1392, 13:28 عصر
متاسفانه درست نشد بازم همون اررور قبلی رو میده
rubiks.kde
سه شنبه 20 اسفند 1392, 16:29 عصر
unfortunately , school has stoped
دوست عزیز منظورم خروجی logcat هست.
smemamian
سه شنبه 20 اسفند 1392, 17:56 عصر
منظور از star یا همون *، یعنی کل ستون ها.
Cursor cursor = db.rawQuery("select * from yourtable",null);
بعد :
if (cursor .moveToFirst()) {
while (cursor.isAfterLast() == false) {
String name = cursor.getString(cursor
.getColumnIndex(count));
list.add(name);
cursor.moveToNext();
}
}
ho3ein.3ven
سه شنبه 20 اسفند 1392, 18:35 عصر
دوست عزیز منظورم خروجی logcat هست.
03-11 07:31:10.838: D/AndroidRuntime(4798): Shutting down VM
03-11 07:31:10.838: W/dalvikvm(4798): threadid=1: thread exiting with uncaught exception (group=0xb3ead648)
03-11 07:31:10.918: E/AndroidRuntime(4798): FATAL EXCEPTION: main
03-11 07:31:10.918: E/AndroidRuntime(4798): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.school/com.example.school.MainActivity}: java.lang.NullPointerException
03-11 07:31:10.918: E/AndroidRuntime(4798): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2211)
03-11 07:31:10.918: E/AndroidRuntime(4798): at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2261)
03-11 07:31:10.918: E/AndroidRuntime(4798): at android.app.ActivityThread.access$600(ActivityThre ad.java:141)
03-11 07:31:10.918: E/AndroidRuntime(4798): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1256)
03-11 07:31:10.918: E/AndroidRuntime(4798): at android.os.Handler.dispatchMessage(Handler.java:99 )
03-11 07:31:10.918: E/AndroidRuntime(4798): at android.os.Looper.loop(Looper.java:137)
03-11 07:31:10.918: E/AndroidRuntime(4798): at android.app.ActivityThread.main(ActivityThread.jav a:5103)
03-11 07:31:10.918: E/AndroidRuntime(4798): at java.lang.reflect.Method.invokeNative(Native Method)
03-11 07:31:10.918: E/AndroidRuntime(4798): at java.lang.reflect.Method.invoke(Method.java:525)
03-11 07:31:10.918: E/AndroidRuntime(4798): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:737)
03-11 07:31:10.918: E/AndroidRuntime(4798): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:553)
03-11 07:31:10.918: E/AndroidRuntime(4798): at dalvik.system.NativeStart.main(Native Method)
03-11 07:31:10.918: E/AndroidRuntime(4798): Caused by: java.lang.NullPointerException
03-11 07:31:10.918: E/AndroidRuntime(4798): at com.example.school.DatabaseHandler.getAllStudents( DatabaseHandler.java:77)
03-11 07:31:10.918: E/AndroidRuntime(4798): at com.example.school.MainActivity.refreshList(MainAc tivity.java:79)
03-11 07:31:10.918: E/AndroidRuntime(4798): at com.example.school.MainActivity.onCreate(MainActiv ity.java:33)
03-11 07:31:10.918: E/AndroidRuntime(4798): at android.app.Activity.performCreate(Activity.java:5 133)
03-11 07:31:10.918: E/AndroidRuntime(4798): at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1087)
03-11 07:31:10.918: E/AndroidRuntime(4798): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2175)
03-11 07:31:10.918: E/AndroidRuntime(4798): ... 11 more
03-11 07:31:16.118: I/Process(4798): Sending signal. PID: 4798 SIG: 9
smemamian
سه شنبه 20 اسفند 1392, 18:39 عصر
خطای معروف NullPointerException رو داری. یک یا چندتا از اندیس ها که برای خواندن اطلاعات استفاده میشه، از حد مجازش فراتر رفته.
ho3ein.3ven
سه شنبه 20 اسفند 1392, 21:24 عصر
خب چیکار میشه کرد برای این خطا ؟
_behnam_
پنج شنبه 22 اسفند 1392, 00:49 صبح
سلام.
کد
String student = cursor.getString(1);
به
String student = cursor.getString(cursor.getColumnIndex("ColumnName"));
تغییر بده ببین درست میشه ؟! به جای ColumnName نیم اسم Column مورد نظر رو بزار
saeed_g21
پنج شنبه 22 اسفند 1392, 10:24 صبح
دیبابیس رو باز میکنی برای خواندن ؟
من خودم وقتی این دو خط رو حذف می کنم خطای شمارو میده ولی وقتی اضافه می کنم بدون هیچ دردسری کار میکنه حالا یک تستی بزن نتیجه رو بگو
dbh=new DatabaseHelper(getApplicationContext());
db = dbh.getReadableDatabase();
ho3ein.3ven
پنج شنبه 22 اسفند 1392, 13:00 عصر
تشکر از هر 2 عزیزی که وقت گذاشتن و جواب دادن
متاسفانه بازم درست نشد .
سورس رو آپلود کردم اگه امکانش هست بررسیش کنید .
http://www.uplooder.net/cgi-bin/dl.cgi?key=67e21cc9cd30e51540245a472162ac19
بازم ممنون
saeidpsl
پنج شنبه 22 اسفند 1392, 15:14 عصر
بفرما (http://upir.ir/files92be/f8488d214c24.rar):چشمک:
ho3ein.3ven
جمعه 23 اسفند 1392, 13:07 عصر
بفرما (http://upir.ir/files92be/f8488d214c24.rar):چشمک:
خروجی نمیده
saeidpsl
جمعه 23 اسفند 1392, 15:44 عصر
خروجی نمیده
پس این چیه ؟
http://8pic.ir/images/25046748256641377486.gif
ho3ein.3ven
شنبه 24 اسفند 1392, 13:24 عصر
به من که جواب نداد
saeidpsl
شنبه 24 اسفند 1392, 13:44 عصر
به من که جواب نداد
رو گوشی جواب نمیده ؟
ho3ein.3ven
شنبه 24 اسفند 1392, 13:53 عصر
رو گوشی تست نکردم ولی رو دستگاه مجازی که تست کردم جواب نداد
saeidpsl
شنبه 24 اسفند 1392, 14:10 عصر
رو گوشی تست نکردم ولی رو دستگاه مجازی که تست کردم جواب نداد
رو Genymotion تست کن حتما جواب میده
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.