У меня есть GridView
и SqlDataSource
для него.SelectCommand
это что-то вроде
SELECT * FROM Transfers WHERE Timestamp >= '{0}' AND Timestamp <= '{1}'
Параметры SqlDataSource
:
<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
и получать даты из текстовых полей в различных форматах, но безуспешно.