如何在比较用户在android中输入的值时忽略数据库中的空值

时间:2013-06-18 05:49:57

标签: android sql arraylist

我试图在我的应用程序中保存用户信息。我有员工编号editText和公司EditText。我的员工编号不是必填字段,这意味着我的表可以具有空值。我的问题是,当我比较用户输入的员工编号是否已存在于我的数据库中时,当用户未在员工编号editText上输入任何内容时,它也会读取空值。有人可以帮我这么做吗?

这是我的代码,我将所有员工编号保存在arraylist中并删除所有空值

ArrayList<String> employeenumber = databaseAdapter.getEmployeeNumber();
employeenumber.removeAll(Collections.singleton(null));
employeenumber.removeAll(Collections.singleton(""));

我想要做的是,如果用户输入员工编号,它将检查arraylist是否包含它,如果是,它将检查公司是否对应它。我需要捕获重复的条目。例如,员工编号为1234,公司为ABCD,程序不得接受。感谢能帮助我的人。

1 个答案:

答案 0 :(得分:1)

首先检查用户是否在员工编号editText上输入内容。然后使用int标志来比较它。请在主要活动中尝试以下代码:

int flag1 = 0;
if (!Emp.equals(""))
{
    ArrayList<String> CompanyandEmp = new ArrayList<String>();
    CompanyandEmp = databaseAdapter.getCompanyEmp(Emp);
    CompanyandEmp.removeAll(Collections.singleton(""));
    for(int i=0;i< CompanyandEmp.size();i++)
      {
        String cmpemp = CompanyandEmp.get(i).toString();
        if(cmpemp.equalsIgnoreCase(companyName))
          {
             flag1 = 1;
          }
    }
}

if (flag1 == 0)
{
//as per your requirement
}else{
     Toast.makeText(RegistrationActivity.this, "Account info already exist.", Toast.LENGTH_LONG).show();
}

然后在您的databaseAdapter中:

public ArrayList<String> getCompanyEmp(String emp) {

    SQLiteDatabase db = this.getReadableDatabase();
    ArrayList<String> companyemp = new ArrayList<String>();

    try {
       Cursor c = db.query("select CompName FROM projsitemast where Emp='"+emp+"'", null);
        if (c != null) {
            c.moveToFirst();
            for (int j = 0; j < c.getCount(); j++) {
                companyemp.add(c.getString(0));
                c.moveToNext();
            }
            c.close();
        }
        return companyemp;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return companyemp;
}