Android SQLite rawQuery 带来麻烦

标签 android database sqlite

我创建了这个方法来了解我的 Sqlite 数据库中是否存在联系人。

public Cursor doesContactExist(String name) 
{
    return db.rawQuery("select * from contacts where name = ?; ", new String[] {name});
}

但是无论何时从另一个 Activity 中调用它,它只会在此时崩溃....

if(db.doesContactExist(name)==null){   <== crashes here
                     try {                       
                        db.open();      
                        db.insertContact(name,cNumber);//name and number are Strings
                        listItems.add(name);           //a List View array
                        db.close();
                        adapter.notifyDataSetChanged(); //adapter for ListView

                            } 
                     catch (Exception e) {
                    //some code                                               }
                    }

根据我的说法,rawQuery 有一些问题,尤其是其中的 sql 字符串。

有什么帮助吗?

最佳答案

您尝试在数据库打开之前进行选择:

if(db.doesContactExist(name)==null){   <== it is closed here
                 try {                       
                    db.open();      <== open the db here

将其更改为:

db.open();
if(db.doesContactExist(name)==null){
          try {                       

关于Android SQLite rawQuery 带来麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15549738/

相关文章:

android - Android 版 Gmail 应用程序的背景图片

php - 查询MySql select异常

mysql - 注册新帐户 MySql

java - SQLite Handler 类作为单例?

php - 在没有 GCM 的情况下通知 android

android - 将文件从外部存储加载到 Inputstream

java - 如何在 Android Studio 上检索 SQL 数据库中的元素?

javascript - 在 HTML5 移动应用程序中实现数据库

android - 在 Jetpack Compose 不可组合函数中获取上下文

java - 限制打开网络驱动器