ASP.NET SelectParameter / Control参数用法

时间:2012-08-22 12:18:02

标签: asp.net sqldatasource

新手到asp.net这里。

我正在尝试根据日期范围的文本框Web控件设置select参数和控件参数,以便在asp.net页面上检索数据。

SelectCommand="SELECT SUM(Turnover) AS TotalTurnover, (SUM(Turnover) / (SELECT COUNT(*) FROM (SELECT DISTINCT [Trade Date] FROM TradeSummary WHERE ([Trade Date] BETWEEN @T1 AND @T2)))) AS AverageTO FROM TradeSummary WHERE ([Trade Date] BETWEEN @T1 AND @T2)">
                        <SelectParameters>
                            <asp:ControlParameter ControlID="TradeDate1" DefaultValue="8-10-2012" Name="T1" Type="DateTime" PropertyName="Text" />
                            <asp:ControlParameter ControlID="TradeDate2" DefaultValue="8-11-2012" Name="T2" Type="DateTime" PropertyName="Text" />
                    </SelectParameters>

TradeDate1和TradeDate2指的是我为日期选择设置的2个文本框控件。

我想知道如何检查@ T1和@ T2的值,以便我可以确保传递给数据库的查询是有效的,因为看起来我好像是eval(“TotalTurnover”)然后我得到了dbnull错误。

任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:2)

您还可以在检查值后从代码中传递控制参数。在Page_Load或任何其他控件事件(例如按钮)中添加以下代码

// check your textbox values
if( TradeDate1.Text != null )
{
   SqlDataSource1.SelectParameters.Add("@T1",TradeDate1.Text);
}

答案 1 :(得分:1)

我会在按钮的单击事件中检查文本框的输入值,如果它们都正常,请继续数据源的数据源。然后在数据源的选择事件中,我使用datsource.SelectParameters [“T1”]设置必要的参数.DefaultValue = date;