2013-03-18 5 views
4

저는이 기능이 매우 유용합니다. 아직이SQL 쿼리에서 C# 변수 사용

var query = db.Query("SELECT * FROM pageinfo WHERE pageID = 1"); 

일, 그리고 :이 얻을 수

(C 번호와 ASP.NET) SQL 쿼리를하고있다 ... 나는 완전히 누락 분명 뭔가하지만 있습니다

var pageID=1; 
var query = db.Query("SELECT * FROM pageinfo WHERE pageID = @pageID"); 

않습니다.

기본적으로 원하는 것은 변수를 쿼리에 배치하는 것뿐입니다. 이것을하기위한 특별한 구문이 있습니까?

감사합니다.

+0

에서 어떤 클래스가 db입니까? – qujck

+0

@ user2124495 당신은 Sql Injection으로 끝날 것입니다. 매개 변수가있는 검색어를 사용하십시오. –

답변

14

이렇게하기위한 특별한 구문이 있습니까?

예, SQLParameter을 사용하십시오. 같은

뭔가하십시오 당신의 자신의 구현 것 같다 db.Query

SqlCommand cmd = new SqlCommand("SELECT * FROM pageinfo WHERE pageID = @pageID"); 
cmd.Parameters.AddWithValue("@pageID", 2); 

현재 방법. 해당 메서드를 오버로드하여 SqlParameter 목록을받은 다음 해당 매개 변수를 명령에 추가 할 수 있습니다. 이렇게하면 SQL Injection

+0

감사합니다! 이제는 작동하도록했습니다.하지만 'query'변수가 없으므로 어떻게 결과를 얻을 수 있습니까? – user2124495

+0

[SqlDataReader를 사용하여 데이터 읽기] (http://csharp-station.com/Tutorial/AdoDotNet/Lesson04) 또는 [데이터 집합/데이터 테이블 채우기] (http://msdn.microsoft.com/en-us) /library/bh8kx08z.aspx) 명령에서 – Habib

0
var pageID=1; 
var query = db.Query("SELECT * FROM pageinfo WHERE pageID = '"+ PAGEid +"'); 
+0

** **하지 마십시오. [SQL Injection]에 대한 추가 정보 (http://en.wikipedia.org/wiki/SQL_injection) – Habib

+0

전설 감사 ... –

+0

+1 for ........ –