Синтаксическая ошибка преобразования DateTime из символьной строки - PullRequest
3 голосов
/ 29 апреля 2011

Я пытаюсь вставить строку в таблицу ms-sql, используя следующий код

SqlCMDText = "INSERT INTO attendance(date, time_in, time_out, time_total, status,";
SqlCMDText += "  is_late_in, is_half_day, is_early_out, user_id, remarks)";
SqlCMDText += " VALUES('@yestarday_date', 'NA', 'NA', 'NA', 'ABSENT', 'NA', 'NA', 'NA', 52, 'DONE BY PORTAL')";
SqlCMD = new SqlCommand(SqlCMDText, SqlCON);
SqlCMD.Parameters.AddWithValue("@yestarday_date", Yestarday);
SqlCMD.ExecuteNonQuery();

Где Yestarday - строковая переменная, содержащая формат короткой даты, такой как «04/04/2011».Я также попытался передать саму переменную datetime, но она не работает, я получаю ту же ошибку, что и ниже.

"Синтаксическая ошибка преобразования DateTime из символьной строки"

Какой формат долженЯ использую, чтобы это работало?

Спасибо.

Ответы [ 3 ]

1 голос
/ 29 апреля 2011

Использование DateTime.Parse(Yestarday)

SqlCMD.Parameters.AddWithValue("@yestarday_date", DateTime.Parse(Yestarday));
1 голос
/ 29 апреля 2011

Вы должны использовать объект DateTime напрямую. Если вы получили еще одну ошибку, опубликуйте ее.

0 голосов
/ 29 апреля 2011

Попробуйте следующий код.

CurDate = DateTime.ParseExact(@Yestarday, "dd/MM/yyyy", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None)
...