请帮我。我正在尝试制作一个可以保存消费者数据的注册应用程序。用户需要输入他的全名以及他要注册的公司。只要是在不同的公司,他可以多次注册。我在下面的代码中的问题是程序只比较用户输入的第一个数据。例如,用户输入他的姓名和公司是 ABC,程序接受它,当用户再次输入他的姓名和公司是 DEF 时,程序仍然接受它,但是当用户再次输入他的姓名和公司 DEF 时程序仍然接受这是错误的,当您在ABC中更改公司时,程序不接受它。所以我看到的是我的代码只比较输入的第一个信息的数据。
这是我的代码:
在我的数据库适配器中
public Constructor getNameCp(String name)
{
SQLiteDatabase db = this.getReadableDatabase();
Constructor consName = new Constructor();
try
{
Cursor c = db.query(Constants.DATABASE_TABLE_CONSUMER,null, Constants.CONSUMER_FULLNAME + "=?", new String[]{String.valueOf(name)},null, null, null);
if (c == null)
{
return consName;
}
else{
c.moveToFirst();
consName = new Constructor(Integer.parseInt(c.getString(0)),c.getString(c.getColumnIndex(Constants.CONSUMER_EMPNO)),c.getString(c.getColumnIndex(Constants.CONSUMER_FULLNAME)), c.getString(c.getColumnIndex(Constants.CONSUMER_CELLPHONENO)), c.getString(c.getColumnIndex(Constants.CONSUMER_COMPANY)));
}
}catch(Exception e){
e.printStackTrace();
}
return consName;
}
在我的活动中
String name = databaseAdapter.getNameCp(fullName).getConsumerFullname();
String comp = databaseAdapter.getNameCp(fullName).getCompanyname();
if ((fullName.equals(name)) && (companyName.equals(comp))){
UpdateByEmployeeName(fullName);
Toast.makeText(RegistrationActivity.this, "Account info already exist.", Toast.LENGTH_LONG).show();
}else{
String currentDateandTime = sdf.format(new Date());
databaseAdapter.SaveConsumerDetails(new Constructor(Emp.toUpperCase(), Lastname, Firstname, Middlename.toUpperCase(), Cp, Email, fullName, careFriend, companyName, emailmark, currentDateandTime, consumerId, consumercompanycode));
refresh();
}