我无法让我的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行提供了以下错误: “最好的重载匹配...有一些无效的参数。”
如何修复此错误并让参数在我的选择查询中起作用?
感谢。
答案 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
匹配