Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我想从数据库中动态检索数据,我写了这段代码,但我得到的索引错误超出了界限_Android - Fatal编程技术网

Android 我想从数据库中动态检索数据,我写了这段代码,但我得到的索引错误超出了界限

Android 我想从数据库中动态检索数据,我写了这段代码,但我得到的索引错误超出了界限,android,Android,我写这段代码是为了动态地从数据库中获取数据,但是我发现索引的错误超出了界限。请帮我找出我错的地方 这是错误日志 public ArrayList<String> displayEntery(String emailid) { // TODO Auto-generated method stub ArrayList<String> retVals = new ArrayList<String>();

我写这段代码是为了动态地从数据库中获取数据,但是我发现索引的错误超出了界限。请帮我找出我错的地方

这是错误日志

 public ArrayList<String> displayEntery(String emailid) {
            // TODO Auto-generated method stub
            ArrayList<String> retVals = new ArrayList<String>();
            String selectQuery = "SELECT  * FROM LOGIN where EMAILID = '" + emailid
                    + "'";
            Cursor c = db.rawQuery(selectQuery, null);

            if (c.moveToFirst()) {
                do {
                    // retVals.add(GetColumnValue(c, "NAME")); // name
                    String ugName = GetColumnValue(c, "NAME");
                    String email = GetColumnValue(c, "EMAILID");
                    String phone = GetColumnValue(c, "PHONE");
                    retVals.add(ugName);
                    retVals.add(email);
                    retVals.add(phone);

                } while (c.moveToNext());
            }
            return retVals;

        }
试试

public ArrayList displayentry(字符串emailid){
//TODO自动生成的方法存根
ArrayList retVals=新的ArrayList();
String selectQuery=“从EMAILID=”的登录名中选择*”+EMAILID
+ "'";
游标c=db.rawQuery(selectQuery,null);
if(c.moveToFirst()){
while(c.moveToNext()){
//add(GetColumnValue(c,“NAME”);//NAME
字符串ugName=GetColumnValue(c,“名称”);
字符串email=GetColumnValue(c,“EMAILID”);
字符串phone=GetColumnValue(c,“phone”);
retVals.add(ugName);
retVals.add(电子邮件);
检索。添加(电话);
} ;
}
归还;
}

什么是GetColumnValue()?很可能您正在试图读取一个不存在的列。@theRoot。。。为什么?哪一个应该是优势呢?将
if(c.moveToFirst()){
更改为
if(c!=null&&c.moveToFirst()){
那么,你的答案就是用
while
替换
while…while
?嘿,谢谢你的回复,但它不会产生相同的错误,我在这里分享了错误日志
03-25 16:51:43.832: E/AndroidRuntime(4126): FATAL EXCEPTION: main
03-25 16:51:43.832: E/AndroidRuntime(4126): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.appetals.sqllite/com.appetals.sqllite.Welcomepage}: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
03-25 16:51:43.832: E/AndroidRuntime(4126):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at android.os.Looper.loop(Looper.java:137)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at android.app.ActivityThread.main(ActivityThread.java:4745)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at java.lang.reflect.Method.invokeNative(Native Method)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at java.lang.reflect.Method.invoke(Method.java:511)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at dalvik.system.NativeStart.main(Native Method)
03-25 16:51:43.832: E/AndroidRuntime(4126): Caused by: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
03-25 16:51:43.832: E/AndroidRuntime(4126):     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at java.util.ArrayList.get(ArrayList.java:304)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at com.appetals.sqllite.Welcomepage.onCreate(Welcomepage.java:41)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at android.app.Activity.performCreate(Activity.java:5008)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
03-25 16:51:43.832: E/AndroidRuntime(4126):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
 public ArrayList<String> displayEntery(String emailid) {
        // TODO Auto-generated method stub
        ArrayList<String> retVals = new ArrayList<String>();
        String selectQuery = "SELECT  * FROM LOGIN where EMAILID = '" + emailid
                + "'";
        Cursor c = db.rawQuery(selectQuery, null);

        if (c.moveToFirst()) {
            while (c.moveToNext()) {
                // retVals.add(GetColumnValue(c, "NAME")); // name
                String ugName = GetColumnValue(c, "NAME");
                String email = GetColumnValue(c, "EMAILID");
                String phone = GetColumnValue(c, "PHONE");
                retVals.add(ugName);
                retVals.add(email);
                retVals.add(phone);

            } ;
        }
        return retVals;

    }