Asp.net QueryStringParameter不绑定

Asp.net QueryStringParameter不绑定,asp.net,bind,querystringparameter,Asp.net,Bind,Querystringparameter,我试图将ID从HTTP头绑定到select查询中的一个参数。它不返回任何记录,就好像绑定了null一样。可能是什么问题 <asp:SqlDataSource ID="sdsCities" runat="server" ConnectionString="<%$ ConnectionStrings:MyConn %>" SelectCommand="SELECT * FROM [cities] WHERE ([cityid] = @cityid) ORDER BY DateCre

我试图将
ID
从HTTP头绑定到select查询中的一个参数。它不返回任何记录,就好像绑定了null一样。可能是什么问题

<asp:SqlDataSource ID="sdsCities" runat="server" ConnectionString="<%$ ConnectionStrings:MyConn %>"
SelectCommand="SELECT * FROM [cities] WHERE ([cityid] = @cityid) ORDER BY DateCreated Desc">
<SelectParameters>
<asp:QueryStringParameter Name="cityid" QueryStringField="ID" Type="Int32"  DefaultValue="7856"/>
</SelectParameters>
</asp:SqlDataSource>

即使是默认值也不起作用。非常感谢您的帮助。

您的设置看起来不错。我刚刚尝试了一个类似设置的示例项目,它对我来说很好。也许123或7856不能得到任何结果?我认为,您可以使用SqlDataSource的Selected事件来检查参数值的值。Dave-请定义一个空的默认值,如DefaultValue=“”,如图所示,所以答案7865它是否存在,这就是我将其用作默认值的原因。我尝试了DefaultValue=“”,但也不起作用。现在我在想,问题可能在别的地方。我在这里发布了原始问题,但无法修复,因此我将controlparameter替换为querystringparameter。这可能在其他地方破坏了某些内容,但没有得到任何其他错误。从上面的注释来看,我假设代码是正确的。问题出在代码的其他地方。这是我更改代码之前的原始问题。
?mode=full&ID=123