저는 개인 영화 데이터베이스를 쿼리하는 프로그램을 만들고 있습니다. 계획의 주름이 장르를 선택합니다. 예를 들어 Action, Adventure 및 Comedy의 확인란이 3 개 있다고 가정 해 봅시다. 영화는 한 장르 또는 여러 장르로 분류 될 수 있습니다. 영화는 액션 또는 액션/코미디 일 수 있습니다.체크 박스를 기반으로 한 쿼리
아래의 코드 스 니펫은 내가 시작한 것입니다. 그러나 모든 변형을 수용하지는 않습니다. Fill_Grid 함수는 dataGridView를 채 웁니다. 영화에 장르가 하나 있거나 사용자가 영화에있는 장르와 정확히 동일한 장르를 선택한 경우 작동합니다. 영화가 액션 코미디 인 경우 사용자가 액션 만 선택하거나 코미디 또는 액션 및 코메디 만 선택하면 표시되어야하는 상황이 발생합니다.
이것이 의미가 없으면 질문하십시오. 사전에
감사합니다, 체크 박스가 처음 확인 된 경우 -J
string str_SQL = "SELECT Name, File, Action, Fantasy, Horror, Thriller, Adventure, Animation, Comedy, Crime, Documentary, Drama, Family, Games, Mystery, Romance, SciFi, War FROM tbl_Main WHERE Action = " + chk_Action.Checked +
" AND Fantasy = " + chk_Adv.Checked +
" AND Horror = " + chk_Hor.Checked +
" AND Thriller = " + chk_Thrill.Checked +
" AND Adventure = " + chk_Adv.Checked +
" AND Animation = " + chk_Anim.Checked +
" AND Comedy = " + chk_Com.Checked +
" AND Crime = " + chk_Crime.Checked +
" AND Documentary = " + chk_Doc.Checked +
" AND Drama = " + chk_Drama.Checked +
" AND Family = " + chk_Fam.Checked +
" AND Games = " + chk_Game.Checked +
" AND Mystery = " + chk_Mys.Checked +
" AND Romance = " + chk_Rom.Checked +
" AND SciFi = " + chk_Sci.Checked +
" AND War = " + chk_War.Checked + ";";
Fill_Grid(str_SQL);
[_parameterized queries_] (http://www.codinghorror.com/blog/2005/04/give-me- parameterized-sql-or-give-me-death.html) 이러한 종류의 코드는 [_SQL Injection_] (http://en.wikipedia.org/wiki/SQL_injection) 공격에 공개됩니다. –
@Tom - 액션 코미디가 있고 액션과 로맨스를 확인했기 때문에 여전히 반환됩니다. – LittleBobbyTables
저는 SQL 주입의 위험에 대해 신참자들에게 처음으로 지적합니다. 그러나이 경우 어떻게 될지 알 수 없습니다. – Steve