2010-06-28 88 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