2012-04-22 4 views
0

매개 변수를 사용하여 문자 이스케이프를 피하는 방법을 몇 가지 보았습니다. 매개 변수 사용은 SQL 주입에 대해 100 % 안전합니까?C# ASP.NET SQL 매개 변수화

또한 기본 쿼리 (사용되는 reguraly)와 매개 변수 구현 방법을 알려주시겠습니까?

내가 여기 오기 전에 내가 검색 한 일부 웹 사이트는 너무 복잡한 예제를 제공했다.

SqlCommand command = new SqlCommand(@"select city from users where username = @username", conn); 
SqlParameter param = new SqlParameter(); 
param.ParameterName = "@username"; 
param.Value = "abc123" 
command.Parameters.Add(param); 

conn 당신이 설립 한도록 SqlConnection입니다 다음과 같이

+0

사용할 수 있습니다. 또한 정기적으로 사용되는 쿼리는 무엇을 의미합니까? 전적으로 데이터 모델에 의존합니다. –

답변

2

매개 변수화 된 SQL 쿼리의 기본 예입니다.

@username은 명령이 실행될 때 대체 될 매개 변수 이름입니다.

abc123은 예를 위해 작성한 구성 사용자 이름입니다.

이것은 분명히 만들어진 시나리오이지만, 당신은 요점을 얻습니다.

0

짧은 버전로서 당신은 아무것도 100 % 안전하다는 것을 명시 주저

SqlCommand command = new SqlCommand(@"select city from users where username = @username", conn); 
command.Parameters.AddWithValue("@username", "value"); 
+0

OK -'.AddWithValue()'메소드를 사용하면 기본적으로 ADO.NET에 사용 된 데이터 유형을 추측하게됩니다. 대부분의 경우 꽤 잘합니다. 그러나 때때로, 때때로 꺼져 있습니다. 때로는 약간 떨어져 있습니다. 따라서 ** 권장하지 않습니다 ** ** 데이터 타입을 명시 적으로 정의하고 ADO.NET 런타임에서 추측하기에 남겨 두지 않는 것이 좋습니다 ..... –

+0

AddWithValue에 과부하가 있다고 생각합니다. 유형을 전달할 수 있습니다. –

관련 문제