2013-06-09 2 views
0

외부 소스를 반복하고 문자열 목록을 가져옵니다. 다음을 사용하여 DB에 삽입합니다.SQL 서버 - 작은 따옴표로 문자열 삽입

SqlCommand command = new SqlCommand(commandString, connection); 
command.ExecuteNonQuery(); 

여기서 commandString은 삽입 명령입니다. 즉

insert into MyTable values (1, "Frog") 

때로는 문자열을 포함 '또는 "또는 \와 삽입이 실패합니다.
해결하는 우아한 방법이 있나요이 (예 : @" "또는 이와 유사한 것)? 당신은 사용에 보일 것입니다

+0

매개 변수화 쿼리를 사용 : (NuGet에서 자유롭게 사용할 수) "말끔 해"와 같은

도구이 쉽게? –

답변

2

매개 변수.

insert into MyTable values (@id, @name) 

그리고

int id = 1; 
string name = "Fred"; 
SqlCommand command = new SqlCommand(commandString, connection); 
command.Parameters.AddWithValue("id", id); 
command.Parameters.AddWithValue("name", name); 
command.ExecuteNonQuery(); 

지금 name 따옴표의 수를 가질 수 있고 그것을 잘 작동합니다. 더 중요한 것은 이제 SQL 인젝션으로부터 안전하다는 것입니다.

int id = 1; 
string name = "Fred"; 
connection.Execute("insert into MyTable values (@id, @name)", 
    new { id, name });