3

asp.net 的新手在这里。

我正在尝试根据日期范围的文本框 Web 控件设置 selectparameters 和 controlparameters 以检索 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 错误。

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

4

2 回答 2

2

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

// check your textbox values
if( TradeDate1.Text != null )
{
   SqlDataSource1.SelectParameters.Add("@T1",TradeDate1.Text);
}
于 2012-08-22T12:27:58.883 回答
1

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

于 2012-08-22T12:34:46.580 回答