我有一个由 SQL 表填充的下拉列表 (selProject)。value 是 id 字段,name 是 name 字段。
我有一个由 sqldatasource 提供的 gridview 控件。
我想要做的是基于 selProject 下拉菜单的条件 where 子句。我花了 3 个小时搜索并试图弄清楚这一点。我担心我会咬死一个同事。
当我在下拉列表中选择特定值时,控件的 selectedValue 为“40”。我通过调试验证了这一点。这是正确和预期的。
我有一个如下所示的 controlParameter:
<asp:ControlParameter ControlID="selProject" PropertyName="SelectedValue" Name="ProjectIDPass" Type="Int32" />
SelectCommand 包括:(Batches.ProjectID = @ProjectIDPass)
作为 Where 子句的一部分。
我没有行,没有错误,没有问题。我怀疑的问题是下拉列表的 SelectedValue 是一个字符串,而 Batches.ProjectID 是一个整数。
当我将 40 硬编码到 where 子句中代替 @ProjectIDPass 时,效果很好。当我回到 ControlParameter 时,炸弹就出来了。我尝试了各种转换技术。
有什么方法可以查看使用实际值代替参数执行的 SqlDataSouce SelectCommand。