2013-04-04 3 views
0

MySQL 데이터베이스에서 Combobox를 채우려고합니다. 그러나 나는 아무것도 얻지 않는다. 다음은 코드입니다.VB.NET : MySQL 쿼리를 사용하여 ComboBox 채우기

테이블 : 클래스

열 : 코드, 국가

sqlstr = "SELECT * FROM Class WHERE State= Not Started" 
DBCmd = New MySql.Data.MySqlClient.MySqlCommand(sqlstr, DBConn) 
DBDR = DBCmd.ExecuteReader 
While (DBDR.Read()) 
CB_Class.Items.Add(DBDR("Code")) 
End While 
DBCmd.Dispose() 
DBDR.Close() 

나는 "시작되지 않음"으로 설정 자신의 상태 값과 최소 2 개 기록이 있기 때문에 결과가 잘못 생각합니다. 뭐가 잘못 되었 니? "State = Not Started"라고 쓰여진 방식에 문제가 있습니까?

+0

DBDR = DBCmd.ExecuteReader에 도달 할 때까지 프로그램이 올바르게 작동합니다. 더 이상 실행되지 않습니다. –

답변

1

명령 텍스트가 올바르지 않습니다. 그것은 State 다음 그 위에 모든 검색은 작은 따옴표로 묶어야합니다 문자열 필드 인 경우 문자열 주위에 따옴표가

sqlstr = "SELECT * FROM Class WHERE State='Not Started'" 
             ^  ^

를 검색 할 수 없다.
검색 할 문자열에 작은 따옴표가 포함되어있을 때 발생할 수있는 문제에주의하십시오.

이 간단한 경우에는 문자열 상수를 직접 사용할 수 있지만 사용자 입력으로 동적 검색을 렌더링하면 매개 변수화 된 쿼리를 사용해야합니다.

+0

고마워요! 나는 그것을 얻었다! –