String name=((EditText)findViewById(R.id.EditTextUser)).getText().toString();
System.out.println(name);
DatabaseHelper dbhelper1=new DatabaseHelper(MainActivity.this,"jxc");
SQLiteDatabase db1=dbhelper1.getReadableDatabase();
Cursor cursor=db1.query("user", new String[]{"username","password"}, "username = ?", new String[]{name}, null, null, null);
cursor.moveToFirst();
String temp=cursor.getString(cursor.getColumnIndex("username"));
错误提示:
04-23 15:20:16.539: D/AndroidRuntime(277): Shutting down VM
04-23 15:20:16.539: W/dalvikvm(277): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
04-23 15:20:16.571: E/AndroidRuntime(277): FATAL EXCEPTION: main
04-23 15:20:16.571: E/AndroidRuntime(277): android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
04-23 15:20:16.571: E/AndroidRuntime(277):  at android.database.AbstractCursor.checkPosition(AbstractCursor.java:580)
04-23 15:20:16.571: E/AndroidRuntime(277):  at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214)
04-23 15:20:16.571: E/AndroidRuntime(277):  at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41)
04-23 15:20:16.571: E/AndroidRuntime(277):  at com.example.android0420.MainActivity$MyButtonListener.onClick(MainActivity.java:64)
04-23 15:20:16.571: E/AndroidRuntime(277):  at android.view.View.performClick(View.java:2408)
04-23 15:20:16.571: E/AndroidRuntime(277):  at android.view.View$PerformClick.run(View.java:8816)
04-23 15:20:16.571: E/AndroidRuntime(277):  at android.os.Handler.handleCallback(Handler.java:587)
04-23 15:20:16.571: E/AndroidRuntime(277):  at android.os.Handler.dispatchMessage(Handler.java:92)
04-23 15:20:16.571: E/AndroidRuntime(277):  at android.os.Looper.loop(Looper.java:123)
04-23 15:20:16.571: E/AndroidRuntime(277):  at android.app.ActivityThread.main(ActivityThread.java:4627)
04-23 15:20:16.571: E/AndroidRuntime(277):  at java.lang.reflect.Method.invokeNative(Native Method)
04-23 15:20:16.571: E/AndroidRuntime(277):  at java.lang.reflect.Method.invoke(Method.java:521)
04-23 15:20:16.571: E/AndroidRuntime(277):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-23 15:20:16.571: E/AndroidRuntime(277):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-23 15:20:16.571: E/AndroidRuntime(277):  at dalvik.system.NativeStart.main(Native Method)
04-23 15:25:16.698: I/Process(277): Sending signal. PID: 277 SIG: 9
请给位大侠指点一下 谢谢!

解决方案 »

  1.   

    你的是游标数组越界啊
    Cursor c = db1.query("user", null, null, null, null, null, null, null);  
    while(cursor.moveToNext()){
    String temp=cursor.getString(cursor.getColumnIndex("username"));
    }
      

  2.   

    我这样写查询语句有问题?
    Cursor cursor=db1.query("user", new String[]{"username","password"}, "username = ?", new String[]{name}, null, null, null);我的表是user 里面有两个字段username,password这样写就可以
    Cursor cursor=db1.query("user", null, null, null, null, null, null);
      

  3.   

    你这样子写应该也可以,加上while(cursor.moveToNext()){
    String temp=cursor.getString(cursor.getColumnIndex("username"));
    }应该也可以的,你试试
      

  4.   

    这个应该是没查询到结果吧。。movetofirst应该是false,你看下是不是。
      

  5.   

    一般cursor查询需要做判断的
    if(cursor!=null&&cursor.movetofirst){
    //在这里进行cursor读取数据处理。
    }
      

  6.   

    04-24 01:37:44.526: E/AndroidRuntime(281): java.lang.NullPointerException
    报空指针异常了
      

  7.   


    打印出来是false  那就是说这个查询语句有问题了
    Cursor cursor=db1.query("user", new String[]{"username","password"}, "username = ?", new String[]{name}, null, null, null);
    我怎么能看到这行代码最终生成的sql语句啊我在数据里面可以查询的到
      

  8.   

    String name="admin";
    Cursor cursor=db1.query("user", null, "username = '"+name+"'", null, null, null, null);
    Cursor cursor=db1.query("user", null, null, null, null, null, null);上面那个我加了一个条件查询就有问题
    下面跟查询全部的就没有问题 
    我一个一个参数比较都没找到问题