在 if 语句中获取数据库值

Getting database values in if statement

我有一个包含多个 phone 号码的数据库。我需要检查数据库是否包含特定数字。如何在 if 语句中获取数据库值?我应该使用数组列表吗?

这就是我到目前为止所做的..

@Override
public void onReceive(Context context, Intent intent) {
Bundle bund=intent.getExtras();
String space="";

if(bund!=null) {  
Object[] smsExtra = (Object[]) bund.get(SMS_EXTRA_NAME);

for (int i = 0; i < smsExtra.length; i++) {
SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);
body = sms.getMessageBody().toString();
address = sms.getOriginatingAddress();

db = openOrCreateDatabase("Admindb", MODE_PRIVATE, null);
Cursor crs = db.rawQuery("select * from adminstbl", null);
String[] str= new String[crs.getCount()];
crs.moveToFirst();
for(int k=0;k<str.length;k++)
{
str[k] = crs.getString(crs.getColumnIndex("Number"));
crs.moveToNext();
}

if (address.equals(str)){
 //do my task here
}

首先,在您的 activity 代码中,您可以使用游标访问您的数据库。

 Cursor numberCursor = mDbHelper.fetchRecord(mPhoneNumber);

这里是您的数据库处理程序中的代码示例。

public Cursor fetchRecord(long mPhoneNumber) throws SQLException {

    Cursor mCursor = mDb.query(true, ACCOUNTS_TABLE, new String[]{
                    ACCOUNTS_ROWID, ACCOUNTS_NAME, ACCOUNTS_ADDRESS,
                    ACCOUNTS_PHONENUMBER}, ACCOUNTS_PHONENUMBER+ "=" + mPhoneNumber, null, null,
            null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;

}

游标查询中读取 ACCOUNTS_PHONENUMBER+ "=" + mPhoneNumber 的部分正在查找与您从 activity。游标只会 return 记录该数字。

最后,回到您的 activity,在上面显示的第一行代码之后,您可以放置​​一个 if 语句来检查 returned 值。

  mReturnedNumber = numberCursor.getLong(3);
    if (mReturnedNumber != null){
// You may now use the number here since it is not null
}

For more information on Sqlite queries, follow this link.

这是下面评论之一的代码示例。

 Cursor mCursor = mDb.query(true, ACCOUNTS_TABLE, new String[]{
                ACCOUNTS_ROWID, ACCOUNTS_NAME, ACCOUNTS_ADDRESS,
                ACCOUNTS_PHONENUMBER}, ACCOUNTS_PHONENUMBER+ "=" + mPhoneNumber + " OR " + ACCOUNTS_PHONENUMBER_2 + "=" + mPhoneNumber, null, null,
        null, null, null);

注意查询现在有一个 OR 语句。