2013-11-26 4 views
0

현재 C# 과정을 수강 중이며 데이터베이스에서 일부 데이터를 가져 오려고합니다. string genre = "drama";어떻게 변수를 SqlCeCommand에 연결합니까?

지금 내 SqlCeCommand에 그 변수을 연결하려면 : 내 공개 기능에서

나는 지역 변수가

SqlCeCommand command = new SqlCeCommand("SELECT * FROM Movie WHERE Genre =" + genre, connection); 

을하지만 난 할 수 없습니다입니다.

제 질문은 : SqlCeCommand에 변수를 추가하거나 연결하는 방법은 무엇입니까?

답변

4
SqlCeCommand command = new SqlCeCommand("SELECT * FROM Movie WHERE Genre = @genre", connection); 
command.Parameters.AddWithValue("@genre", genre); 

첫 번째 시도가 닫 혔고 구문이 수정 되었더라도 작동 할 수 있지만 매개 변수를 사용하면 주입 공격을 예방하는 데 도움이되므로 매우 위험 할 수 있습니다.

+0

당신에게 선생님 감사합니다! :) 그것은 8 분 안에 해결할 것입니다 ... :) –

0

SQL 삽입을 방지하려면 항상 문자열 연결 대신 SQL 매개 변수를 사용해야합니다. 귀하의 경우에는,이 또한 쉽게 당신이 유효한 SQL 쿼리를 작성 할 수 있도록합니다

SqlCeCommand command = new SqlCeCommand("SELECT * FROM Movie WHERE Genre = @genre", connection); 
command.Parameters.AddWithValue("@genre", genre); 
0

를 사용하여 매개 변수

SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM Movie WHERE Genre = @genre", conn)); 
    cmd.Parameters.Add(new SqlCeParameter("@genre", genre)); 
관련 문제