如何从数据库中获取名称?

时间:2014-02-26 10:26:21

标签: android sqlite indexoutofboundsexception

我想从数据库中获取名称并在textview中显示。我的应用程序已经安装时工作正常,但是当应用程序被卸载并再次安装时,它会给出IndexOutOfBoundException

这是我的代码:

if(c.getString(0)==null){
    TextView w1=(TextView)findViewById(R.id.textVi1);
    w1.setText("Welcome");
} else {
    TextView w1=(TextView)findViewById(R.id.textVi1);
    w1.setText("Welcome"+" "+c.getString(0)+",");
}

卸载并重新安装应用程序时,如何获取数据?

2 个答案:

答案 0 :(得分:1)

试试这个。它可能有帮助。

public String getResult(String id)
{
    String name = null;
    try
    {
        Cursor c = null;
        c = db.rawQuery("select name from person where id=" + "\""+id+"\"", null);
        c.moveToFirst();
        name = c.getString(c.getColumnIndex("name"));
        c.close();
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    return name; 
}

答案 1 :(得分:1)

在光标上调用getString()之前,请确保它指向有效行:

if (c.moveToFirst()) {
  // use c.getString(0)
} else {
  // don't access cursor, no data
}