在if语句中获取数据库值

时间:2015-11-28 17:31:31

标签: android arrays string if-statement android-database

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

这就是我到目前为止所做的事情。

@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
}

1 个答案:

答案 0 :(得分:1)

首先,在您的活动代码中,您可以使用游标评估您的数据库。

 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 +&#34; =&#34;游标查询中的+ mPhoneNumber 正在查找与您从活动传入的数字匹配的任何记录。光标只返回带有该编号的记录。

最后,回到你的活动中,在上面显示的第一行代码之后你可以放一个if语句来检查返回的值。

  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语句。