2010-06-28 4 views
0

SelectCommand를 기본 페이지의 텍스트 상자를 사용하여 where 절에 추가 할 수 있습니까? 프로그래밍에 익숙하지 않은 예를 포함 시키십시오. 그러면 개념을 더 잘 이해할 수 있습니다. 미리 감사드립니다.간단한 ASP 쿼리 질문

예 (BADGE = 10000 + xBadgeTextBox.Text)?

string Badge = "100000" + Request.Form["xBadgeTextBox"]; 

<asp:SqlDataSource ID="Time" runat="server" 
     ConnectionString="<%$ ConnectionStrings:Time %>" 
     ProviderName="<%$ ConnectionStrings:Time.ProviderName %>" 
     SelectCommand="SELECT CLOCK_IN_TIME, CLOCK_OUT_TIME, BADGE FROM CLOCK_HISTORY WHERE (BADGE = 100000342)"> // use the badge number instead. 
    </asp:SqlDataSource> 

답변

1

당신은 SqlDataSource와 객체 내에서를 쿼리에 매개 변수를 추가 지정할 수 있습니다. 여기를보세요 :

또한

http://msdn.microsoft.com/en-us/library/z72eefad.aspx

가 여기에 SQL 주입 공격의 매우주의하시기 바랍니다하시기 바랍니다. 어떤 시점에서 텍스트 상자의 문자열을 select 명령에 연결하려는 유혹을받을 수 있습니다. Do not :)

+0

나는 이것을 시도했지만 gridview도 aspx 페이지에 표시되지 않습니다, 내가 뭘 잘못하고있어? 를 ConnectionString = "<% $ ConnectionStrings : 시간 %"> 에는 ProviderName은 = "<% $ ConnectionStrings : Time.ProviderName %"> SelectCommand에 = "" CLOCK_IN_TIME ", " CLOCK_OUT_TIME를 선택 " WHERE (" BADGE " CLOCK_HISTORY " FROM " = BADGE) ">

+0

복사/붙여 넣기 문제가 아니라면 SelectCommand에 "의 인스턴스가 원인 일 수 있습니다. 이것이 데이터베이스로 보내지는 것이라면 오류 만 반환 할 것입니다. 오류가 있습니까? – David

+0

문자열이 "사용자 입력 343 실수 10000343"이라는 텍스트 상자에 이미 연결되어 있다면 어떻게 실제 숫자를 읽을 수 있습니까? –