1

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

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

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

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

4

1 回答 1

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();
}

然后在你的数据库适配器中:

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;
}
于 2013-06-19T00:48:32.727 回答