2010-06-28 115 views
0

如何讓SelectCommand使用默認頁面中的文本框,以便我可以將其添加到where子句中?請包括一個我對編程新手的例子,它可以幫助我更好地理解這個概念。提前致謝。簡單ASP查詢問題

示例WHERE(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命令。不要:)

+0

我試過這個,但是gridview甚至沒有顯示在aspx頁面上,我做錯了什麼? 的ConnectionString = 「<%$的ConnectionStrings:時間%>」 的ProviderName = 「<%$的ConnectionStrings:Time.ProviderName%>」 的SelectCommand =「SELECT " CLOCK_IN_TIME "," CLOCK_OUT_TIME " FROM " CLOCK_HISTORY " WHERE(" BADGE " =:BADGE) 「> 2010-06-28 17:59:53

+0

除非這裏只是複製/粘貼問題,否則SelectCommand中的"實例可能是罪魁禍首。如果這是發送到數據庫的內容,它可能只是返回一個錯誤。你是否遇到錯誤? – David 2010-06-28 18:03:54

+0

如果字符串已經在文本框中串聯「用戶輸入343實數爲10000343」,如何獲取它以讀取實際數字? – 2010-06-28 18:05:22