使用Calendar1_SelectionChanged创建SqlParameter

时间:2013-03-06 13:24:53

标签: c# asp.net

我无法让我的SqlParameter在我的SqlDataSource select命令中工作。我正在尝试在选择日历控件上的新日历日期时运行查询,以按所选日期筛选查询。这是我在C#端的内容:

protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
    SqlParameter para1 = new SqlParameter("@mydate", SqlDbType.DateTime);
    para1.Value = Calendar1.SelectedDate;
    SqlDataSource1.SelectParameters.Add(para1);
}

我/几乎/通过这个帖子找到了我需要的东西: How can I set the sqldatasource parameter's value?

但是顶部答案提供的解决方案为SelectParameters.Add行提供了以下错误: “最好的重载匹配...有一些无效的参数。”

如何修复此错误并让参数在我的选择查询中起作用?

感谢。

1 个答案:

答案 0 :(得分:1)

根据Jon Skeet对此链接的回答: Setting DateTime as a SqlDataSource parameter for Gridview,请尝试将此行更改为

para1.Value = Calendar1.SelectedDate.ToString();

看看是否有效。

修改 根据jadarnel27的评论,请尝试以下方法:

SqlDataSource1.SelectParameters.Add("@mydate", SqlDbType.DateTime, Calendar1.SelectedDate.ToString());

由于SQLParameter.Value的类型为object,重载可能会在Calendar1.SelectedDate.ToString()上进行一些验证,以便与SQLDbType匹配