我有一個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