Проблема DateTime в asp.net - PullRequest
       0

Проблема DateTime в asp.net

0 голосов
/ 10 августа 2009

Я использую v.s 2008 с c #. У меня есть файл .rdlc, и он использует источник данных источника. ods имеет два параметра datetime. Формат этого параметра даты и времени должен быть дд-мм-гггг. но это время бросило исключение. Исключение: ошибка произошла во время обработки отчета. Строка не была распознана как действительный DateTime.

Мой код:

        int iBaslangicYil = txtIlkTarih.Text.Substring(6, 4).To<int>();
        int iBaslangicGun = txtIlkTarih.Text.Substring(0, 2).To<int>();
        int iBAslangicAy = txtIlkTarih.Text.Substring(3, 2).To<int>();
        DateTime dtBaslangic = new DateTime(iBaslangicYil, iBAslangicAy, iBaslangicGun);

        int iBitisYil = txtIkinciTarih.Text.Substring(6, 4).To<int>();
        int iBitisGun = txtIkinciTarih.Text.Substring(0, 2).To<int>();
        int iBitisAy = txtIkinciTarih.Text.Substring(3, 2).To<int>();
        DateTime dtBitis = new DateTime(iBitisYil, iBitisAy, iBitisGun);

        rvTarihAraliginaGoreSeansSayilari.Visible = true;
        odsTarihAraliginaGoreSeansSayisi.SelectParameters.Add("refTarih1",DbType.DateTime,dtBaslangic.ToString());
        odsTarihAraliginaGoreSeansSayisi.SelectParameters.Add("refTarih2", System.Data.DbType.DateTime, dtBitis.ToString());
        odsTarihAraliginaGoreSeansSayisi.DataBind();
        rvTarihAraliginaGoreSeansSayilari.LocalReport.Refresh();

спасибо за вашу помощь.

Ответы [ 4 ]

1 голос
/ 10 августа 2009

Второй аргумент для добавления SelectParameters к ObjectDataSource должен быть TypeCode enum

odsTarihAraliginaGoreSeansSayisi.SelectParameters.Add("refTarih1",TypeCode.DateTime ,dtBaslangic.ToString());
0 голосов
/ 30 октября 2015

В sourcedatasource, под selectparameters, попробуйте изменить тип параметра с datetime на string. Затем отформатируйте введенные значения как DateTime.Now.ToString("MM/dd/yyyy");. Тип DateTime создает много проблем + sql автоматически преобразует строку этого формата в DateTime.

0 голосов
/ 10 августа 2009

Я думаю, что проблема SelectParameters.Add была решена другими ответами; но чтобы сделать ваш код проще, вы также можете посмотреть на DateTime.ParseExact:

string s = "01-02-2003";
DateTime when = DateTime.ParseExact(s, "dd-MM-yyyy",
    CultureInfo.InvariantCulture); // sine no locale issues in the above
0 голосов
/ 10 августа 2009

Попробуйте установить формат строки явно при вызове ToString:

odsTarihAraliginaGoreSeansSayisi.SelectParameters
    .Add("refTarih1", DbType.DateTime, dtBaslangic.ToString("yyyy'-'MM'-'dd");
odsTarihAraliginaGoreSeansSayisi.SelectParameters
    .Add("refTarih2", DbType.DateTime, dtBitis.ToString("yyyy'-'MM'-'dd");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...