Проблема времени и даты в VB 2005

Я использую VB2005 и SQL SERVER 2000.

PVAR_SQL_STR = "INSERT INTO GLR_US_PERIOD (ORG5_CODE,PERIOD_YEAR,PERIOD_CODE," _
    "PERIOD_NO,FROM_DATE,TO_DATE,INSERT_USER,INSERT_DATE) VALUES " _
    & "('" & PVAR_COMPANY_CODE & "' ,'" & TextBox1.Text & "','" & Serial1.Text & _
    "'," & TextBox2.Text & ", '" + DateTimePicker1.Value.ToString("D") + "' ,'" + _
    DateTimePicker2.Value.ToString("D") + "','" & PVAR_USER_CODE & "','" + _
    Now.ToString("F") + "')"

Синтаксическая ошибка преобразования даты и времени из символьной строки только из-за этой части:

Now.ToString("F")

Почему, я не знаю, но когда я перехожу в

Now.ToString("D")

это работает хорошо, но сохраняет только дату. Я хочу вставить дату и время.

1 ответ

Простой ответ - вовсе не пытаться встроить все это в оператор SQL. Вместо этого используйте параметризованный запрос и установите значение параметра в DateTime.Now (или же DateTime.UtcNow) вместо

Параметризованные запросы также являются эффективной защитой от атак SQL-инъекций. Вставка общих данных (особенно когда они предоставляются пользователями) в операторы SQL напрямую - это путь к катастрофе.

Смотрите документы дляSqlCommand.Parameters для получения дополнительной информации - или обратитесь к любому приличному учебнику или книге по ADO.NET.

Другие вопросы по тегам