2013-06-18 2 views
1

도와주세요. 소비자 데이터를 저장하는 등록 앱을 만들려고합니다. 사용자는 자신이 등록하고자하는 회사와 함께 완전한 이름을 입력해야합니다. 그는 다른 회사에있는 한 여러 번 등록 할 수 있습니다. 아래의 내 코드에서 내 문제는 프로그램이 입력 한 첫 번째 데이터의 사용자 입력 만 비교한다는 것입니다. 예를 들어, 사용자가 자신의 이름을 입력하고 회사가 ABC이고, 프로그램이 그것을 수락하고, 사용자가 자신의 이름을 다시 입력하면 회사는 여전히 프로그램을 수락하지만 DEF는 사용자가 그의 이름과 회사를 다시 입력 할 때 프로그램은 여전히 ​​그것을 받아들입니다. ABC에서 회사를 바꿀 때 프로그램은 그것을 받아들이지 않았습니다. 그래서 내가 본 것은 입력 된 첫 번째 정보의 데이터 만 비교하는 것입니다. 특히 직원의 이름에 대한 모든 기업의 목록을 가져 오는 데이터베이스의 메소드 아래행이 데이터베이스에 이미 존재하는지 확인하십시오.

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

제공하여 내가 사전로드 된 데이터베이스를 사용하고 있습니다 .. – Riser

+0

을 당신을 도울 수 있도록 테이블 쿼리를 작성합니다. – lolliloop

+0

첫 번째 두 줄의 데이터베이스에서 유효한 이름과 작성자를 얻었습니까? – Riser

답변

0

를 사용하여 내 활동에 내 databaseAdapter

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

: 여기

내 코드입니다 :

public ArrayList<String> getCompName(String name) { 

    ArrayList<String> alCompNm = new ArrayList<String>(); 

    try { 
     Cursor c = db.rawQuery("select CompName FROM projsitemast where Name='"+name+"'", null); 
     if (c != null) { 
      c.moveToFirst(); 
      for (int j = 0; j < c.getCount(); j++) { 
       alCompNm.add(c.getString(0)); 
       System.out.println("Client Site Name : " + c.getString(0)); 
       c.moveToNext(); 
      } 
      c.close(); 
     } 
     return alCompNm; 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return alCompNm; 
} 
자신의 메인 활동에 5,

:

flag = 0; 
ArrayList<String> cNm = new ArrayList<String>(); 
dba.open(); 
cNm = dba.getCompName(yourname); 

for(int i=0;i< cNm.size();i++){ 
    String cmpname = cNm.get(i).toString(); 

    if(cmpname.equals(yourcmpname)){ 
      flag = 1; 
     } 
} 

if(flag==0){ 
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(); 
// OR as per your requirement 
} 
else{ 
Toast.makeText(RegistrationActivity.this, "Account info already exist.", Toast.LENGTH_LONG).show(); 
} 
+0

감사합니다! 그것은 잘 작동합니다 ... – lolliloop

+0

welcome dude ... :) – Riser

관련 문제