我在让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/