我有一个GridView
和SqlDataSource
它。 SelectCommand
是类似的SqlDataSource
将DateTime SelectParameter传递给SqlDataSource
SELECT * FROM Transfers WHERE Timestamp >= '{0}' AND Timestamp <= '{1}'
参数:
<SelectParameters>
<asp:Parameter Name="StartDate" Type="DateTime" />
<asp:Parameter Name="EndDate" Type="DateTime" />
</SelectParameters>
然后在后面的代码我设置此参数:
protected void gvTransfers_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
e.Command.Parameters["@StartDate"].Value = DateTime.Parse(txtStartDate.Text);
e.Command.Parameters["@EndDate"].Value = DateTime.Parse(txtEndDate.Text);
}
我调试上面的代码,它运行,并设置好DateTime
值。但是,当GridView
被数据绑定它抛出异常
Conversion failed when converting date and/or time from character string.
我花了几个小时的寻找如何以恰当的方式传递DateTime
。我究竟做错了什么?我应该更改SQL,标记或代码吗?
我也试过FilterParameters
并从各种格式的文本框中获取日期,但没有成功。
您使用的是哪种sql server版本 – Devjosh
您是否尝试过使用DateTime.Parse(txtStartDate.Text).ToString(“dd-MMM-yyyy”)? – 2012-01-19 09:45:33
Sql Server 2008 R2 – Episodex