我在让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行提供了以下错误:
“最佳的重载匹配...有一些无效的参数。”

如何解决此错误并使参数在我的选择查询中起作用?

谢谢。

最佳答案

根据有关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匹配

关于c# - 使用Calendar1_SelectionChanged创建SqlParameter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15248546/

10-10 12:41