Android - 检查SQLite数据库表中的值

时间:2015-06-12 07:27:29

标签: android sqlite textview

我正在尝试从新删除的SQLite数据库表行中读取数据。

基本上我的程序会在加载某个活动时删除一行,我想检查行内的值。

这是我的get代码:

public String getSlot() {
            String slots = new String();

            Cursor cursor = database.query(ChosenSlotDatabaseHandler.TABLE_CHOSEN_PARKING_SLOT,
                chosenSlotColumn, null, null, null, null, null);

            if( cursor.moveToFirst() ) {
                slots = cursor.getString(0);
            }
            // make sure to close the cursor
            cursor.close();
            return slots;
          }

我已使用这些代码删除了值:

public static final String DELETE_SLOT = "DELETE FROM "
            + TABLE_CHOSEN_PARKING_SLOT + " WHERE "
            + "_ID = " + CHOSEN_ID + ";";

public void deleteSlotSQL()
      {
          database.execSQL(ChosenSlotDatabaseHandler.DELETE_SLOT);
      }

这是设置TextView值的条件:

if(slots == null)
            {
                chosenSlotView.setText("You have not parked");
            }
            else
            {
                chosenSlotView.setText("You are parked in : " + slots);
            }

首先,我认为一旦删除了唯一的行,getSlot()将返回null,但似乎它不是Log.d我运行的那个:

if(slots != null)
            {
               Log.d("notnull","not null dude");
            }else
            {
               Log.d("null","Yay null");
            }

log返回“not null dude”..

有关如何获取slots值的任何建议,以便我可以设置TextView

2 个答案:

答案 0 :(得分:1)

首先,你应该避免使用像“not null dude”这样的日志,你会发现它们很有趣且具有启发性,但过了一段时间我们就无法编写干净而专业的代码。 我的第二个建议是使用常量而不是hadcoded字符串。创建一个类常量并添加字符串

   public static final String NOT_PARKED = "You have not parked"

我的第三个建议是看一下ormlite http://logic-explained.blogspot.ro/2011/12/using-ormlite-in-android-projects.html

如果日志正常,可能是textview存在问题。尝试在条件之前在textview中放置文本以检查是否将设置。还检查布局文件。

答案 1 :(得分:1)

你的slots绝对不是因为这个:     String slots = new String();

应该是

 String slots = null;
Cursor cursor = database.query(ChosenSlotDatabaseHandler.TABLE_CHOSEN_PARKING_SLOT,
                chosenSlotColumn, null, null, null, null, null);

            if( cursor.moveToFirst() ) {
                slots = cursor.getString(0);
            }
            // make sure to close the cursor
            cursor.close();
            return slots;

编辑:

没关系String slot = null

尝试使用:

if(slots.isEmpty())
        {
            chosenSlotView.setText(notParked);
        }
        else
        {
            chosenSlotView.setText(isParked + slots);
        }