为什么光标永远不会为空?

界线

我正在制作一个Android应用,在其中将一些ID存储在sqlite数据库中。根据用户的操作,我要么添加ID(如果尚未添加),要么删除ID(如果已添加)。但是问题是我的方法getExhibitor(int id)中的游标始终返回true。我不明白为什么。有人可以帮忙吗?

public class Interests extends SQLiteOpenHelper {

    private Context context;
    private static final int DATABASE_VERSION=1;
    private static final String DATABASE_NAME="userInterests";
    private static final String TABLE_EXHIBITORS="exhibitors";
    // Column Names //
    private static final String KEY_ID="id";

    public Interests(Context context) {
        super(context,DATABASE_NAME,null,DATABASE_VERSION);
        this.context=context;
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
         final  String createQuery="CREATE TABLE IF NOT EXISTS "+TABLE_EXHIBITORS+"( "
                +KEY_ID+" INTEGER PRIMARY KEY)";
        db.execSQL(createQuery);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        db.execSQL("DROP TABLE IF EXISTS"+TABLE_EXHIBITORS);
        onCreate(db);
    }

    public void addExhibitor(int id){
        SQLiteDatabase db=this.getWritableDatabase();
        ContentValues values=new ContentValues();
        values.put(KEY_ID,id);
        db.insert(TABLE_EXHIBITORS,null,values);
        db.close();
        Toast.makeText(context,"Exhibitor added",Toast.LENGTH_SHORT).show();
    }

    //This method is faulty//
    public boolean getExhibitor(int id){
        SQLiteDatabase db=this.getReadableDatabase();
        Cursor c=db.query(TABLE_EXHIBITORS,new String[]{KEY_ID},KEY_ID+" = ? ",new String[]{String.valueOf(id)},null,null,null);
        c.close();
        return (c!=null);    //Always true
    }

    public void removeExhibitor(int id){
        SQLiteDatabase db=this.getWritableDatabase();
        db.delete(TABLE_EXHIBITORS,KEY_ID+" = ?",new String[]{String.valueOf(id)});
        Toast.makeText(context,"Exhibitor removed",Toast.LENGTH_SHORT).show();
        db.close();
    }
}
大卫·梅登雅克

您应该检查游标的内容。

您总是会得到查询的结果行,它们可能为空,但不能为null。

尽管游标null自您执行有效查询后就不会出现,但它可能会有一个getCount() == 01,这取决于它是否在数据库中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Struts2会话中使用了拦截器,为什么它永远不会为空?

来自分类Dev

C / C ++链表永远不会为空

来自分类Dev

为什么$(someElement).height()永远不会为我正确计算高度?

来自分类Dev

数组永远不会为空,但打字稿不知道

来自分类Dev

为什么for(;;)永远不会终止?

来自分类Dev

[FromBody] 会不会总是将我从永远不会为空的参数中拯救出来?

来自分类Dev

为什么等待线程不会永远等待

来自分类Dev

为什么这不会永远持续下去?

来自分类Dev

为什么eof()永远不会返回true?

来自分类Dev

为什么while循环永远不会结束?

来自分类Dev

规则永远不会减少,了解为什么

来自分类Dev

为什么节点程序永远不会终止?

来自分类Dev

为什么“连接”永远不会被触发?

来自分类Dev

Libgdx Scene2d进度栏永远不会为空

来自分类Dev

Request.IsAuthenticated永远不会为真

来自分类Dev

CountDownTimer值永远不会为零

来自分类Dev

AJAX 成功函数永远不会为真

来自分类Dev

为什么React不会为表单列出onReset事件?

来自分类Dev

为什么Valgrind不会为Rust程序显示任何分配?

来自分类Dev

为什么Typescript不会为遗漏的参数引发错误?

来自分类Dev

为什么MutationObserver会为childList两次触发而不会为characterData两次触发?

来自分类Dev

BFS:PriorityQueue不会为空

来自分类Dev

为什么我的指令的链接功能永远不会被调用?

来自分类Dev

为什么C ++中的Lambda永远不会DefaultConstructible

来自分类Dev

为什么这个简单的Akka Streams程序永远不会终止?

来自分类Dev

为什么此Haskell代码永远不会终止?

来自分类Dev

为什么执行此块永远不会结束?

来自分类Dev

为什么最后一行永远不会被读取?

来自分类Dev

为什么(!(feof(sp))&& end)永远不会评估为真?

Related 相关文章

  1. 1

    Struts2会话中使用了拦截器,为什么它永远不会为空?

  2. 2

    C / C ++链表永远不会为空

  3. 3

    为什么$(someElement).height()永远不会为我正确计算高度?

  4. 4

    数组永远不会为空,但打字稿不知道

  5. 5

    为什么for(;;)永远不会终止?

  6. 6

    [FromBody] 会不会总是将我从永远不会为空的参数中拯救出来?

  7. 7

    为什么等待线程不会永远等待

  8. 8

    为什么这不会永远持续下去?

  9. 9

    为什么eof()永远不会返回true?

  10. 10

    为什么while循环永远不会结束?

  11. 11

    规则永远不会减少,了解为什么

  12. 12

    为什么节点程序永远不会终止?

  13. 13

    为什么“连接”永远不会被触发?

  14. 14

    Libgdx Scene2d进度栏永远不会为空

  15. 15

    Request.IsAuthenticated永远不会为真

  16. 16

    CountDownTimer值永远不会为零

  17. 17

    AJAX 成功函数永远不会为真

  18. 18

    为什么React不会为表单列出onReset事件?

  19. 19

    为什么Valgrind不会为Rust程序显示任何分配?

  20. 20

    为什么Typescript不会为遗漏的参数引发错误?

  21. 21

    为什么MutationObserver会为childList两次触发而不会为characterData两次触发?

  22. 22

    BFS:PriorityQueue不会为空

  23. 23

    为什么我的指令的链接功能永远不会被调用?

  24. 24

    为什么C ++中的Lambda永远不会DefaultConstructible

  25. 25

    为什么这个简单的Akka Streams程序永远不会终止?

  26. 26

    为什么此Haskell代码永远不会终止?

  27. 27

    为什么执行此块永远不会结束?

  28. 28

    为什么最后一行永远不会被读取?

  29. 29

    为什么(!(feof(sp))&& end)永远不会评估为真?

热门标签

归档