2012-04-29 2 views
4

사용자가 특정 날짜에 이름 및 기타 세부 정보를 입력하는 애플리케이션이 있습니다. 값/이름 사용자가 이미 데이터베이스 열에 이름이 인 것을 추가하려고하는지 확인해야합니다. 이 코드는 있지만 하나의 값만 선택하면 작동하지 않습니다. 감사합니다값이 안드로이드 sqlite 데이터베이스에 이미 있는지 확인하는 방법?

Cursor c = dbe.rawQuery("SELECT name FROM tbl_user WHERE meeting_date LIKE'" + mydate + "'", null); 

if ((c.getString(3)).equals(editTextName.getText().toString())) 

{ 
// do something 
} 
+0

이 더 많은 코드를 표시합니다. –

답변

2

필드에 값이 있는지만 확인하는 경우 가장 쉬운 방법은 적절한 필터로 선택 개수를 수행하는 것입니다. 그 값이 테이블에 존재하는 경우

SELECT count(*) 
FROM tbl_user 
WHERE meeting_date LIKE ' + my_date' 
AND name = ' + editTextName.getText() + ' 

의 라인을 따라

뭔가이 쉽고 빠르게 결정할 수있다.

여러 테이블을 검사해야하는 경우 해당 테이블을 조인하고 이에 따라 필터를 작성해야합니다.

우연히 SQL에 대해 잘 처리하지 못했다면. 이 도움이 W3Schools SQL Tutorial

희망 :
이 사이트는 좋은 출발점이다.

+2

check (c! = null)을 사용하면 c는 항상 null과 다릅니다. – GuyWhoReadsStockoverflow

1

하나의 열 (name)을 선택하고 아직 존재하지 않는 세 번째 열의 내용을 비교하려고 시도하는 if (아직 시도하지 않은 이유는 확실하지 않지만 문제입니다. , 분명히).

그렇게하기보다는 열 제목을 사용하는 것이 어떻습니까?

그래서 if은 다음과 같이 보일 것이다 (그리고 열이 커서에서 어떤 위치에 상관 없음) :

if (c.getString(c.getColumnIndex("name")).equals(editTextName.getText().toString())) 
+1

시도했지만 응용 프로그램이 충돌 함 – GuyWhoReadsStockoverflow

+1

logcat에서 충돌이 발생할 때 무엇을 말합니까? – Barak

+1

threadid = 1 : 스레드가 catch되지 않은 예외 (그룹 = 0x409c01f8)로 종료합니다. E/AndroidRuntime (4433) : 치명적인 예외 : 메인 E/AndroidRuntime (4433) : android.database.sqlite.SQLiteException : 테이블 tbl_user가 이미 있습니다., while 컴파일 : 테이블 만들기 tbl_user (ID INTEGER 기본 키 자동 증가, 이름 텍스트, 성 텍스트, meeting_title 텍스트, meeting_date 날짜); – GuyWhoReadsStockoverflow

관련 문제