【问题标题】:how do you view the results of a database in a new activity?您如何在新活动中查看数据库的结果?
【发布时间】:2012-03-05 14:11:43
【问题描述】:

我目前正在创建一个数据库来存储服务站的名称和坐标列表。但是,当我单击查看按钮时,我无法查看数据库。这是我的代码:`

public String getData() 
    {
        // TODO Auto-generated method stub
        String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_COORDINATES};
        Cursor c = myDatabase.query(DATABASE_NAME, columns, null, null, null, null, null);
        String result = "";

        int iRow = c.getColumnIndex(KEY_ROWID);
        int iName = c.getColumnIndex(KEY_NAME);
        int iCoordinates = c.getColumnIndex(KEY_COORDINATES);

        for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext())
        {
            result = result + c.getString(iRow) + " " + c.getString(iName) + " " + c.getString(iCoordinates) + "\n";



        }

        return result;
    }`

有人发现这段代码有问题吗?

【问题讨论】:

  • 我们确实需要了解您面临的问题,例如您遇到的异常,以及发生在哪一行。
  • 您是否在某处打印数据?文本视图?什么地方?
  • 在新的活动中,我将 textview 设置为我的数据库的结果,在下面的代码中。 'TextView tv = (TextView) findViewById(R.id.tvSqlInfo);车站信息 = 新车站(本); info.open();字符串数据 = info.getData();信息.close(); tv.setText(数据);'
  • 对不起,我不知道如何格式化代码?
  • 我的应用程序强制关闭并且错误在 LogCat 中

标签: android sql database sqlite view


【解决方案1】:

您的光标可能不包含任何行。如果是这样,c.getString() 会抛出异常。

moveToFirst() 出错时返回 false。像这样做你的循环:

if (c.moveToFirst())
{
 do
 {
   result = result + c.getString(iRow) + " " + c.getString(iName) + " " + c.getString + "\n"; 
 } while (c.moveToNext())
}

如果事实确实如此,那么您可以处理为什么您的表没有行...

【讨论】:

  • 这是一种非常冗长的迭代光标的方式。改用while (c.moveToNext()) { ... }
  • 我的问题是我有 DATABASE_NAME 而不是 DATABASE_TABLE
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-09
  • 2023-03-28
  • 2016-06-06
  • 2021-10-14
  • 1970-01-01
相关资源
最近更新 更多