Ошибки вставки Now () в поле datetime (SQL Server 2005 9.0.5057) - PullRequest
0 голосов
/ 28 ноября 2011

Я выполняю вставку новой строки из формы ASP в базу данных на моем сервере.

Когда я просматриваю записи на сервере, это выглядит так, как будто они фактически добавляются, но останавливает все функции в строке выполнения:

With        
   .Parameters(@blahblah) = Request.Form("blahblah")  
   .Parameters("@lastUpdate") = Now()        
   ...         
   .Execute        
End With

Это ошибки, которые яget:

Поставщик Microsoft OLE DB для драйверов ODBC 80040e07

[Microsoft] [Драйвер ODBC SQL Server] [SQL Server] Преобразование типа данных char в тип данных datetimeпривело к значению даты / времени вне допустимого диапазона ./results.asp217

Добавляемые записи имеют даты в столбце как:

2011-11-28 15: 52: 13.000

У меня такое чувство, что миллисекунды, которые у меня были под впечатлением, появляются только при использовании поля DateTime2 SQL.

Несколько вещей, которые я пробовалпосле неудачного исследования:

  • Добавление 'Session.LCID = 2057' - некоторые SQL-серверы имеют британские или американские настройки, это переопределяет пользовательские настройки
  • Попытка связать другую датуформаты, такие как FormatDateTime (Now (), 0 - 5)
  • Я могу использовать «On Error Resume Next», но я бы предпочел исправить это правильно.

Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

Вы пытались передать именованные параметры, но если значение NamedParameters равно False (по умолчанию), имена параметров будут игнорироваться (порядок добавления параметров будет влиять).См. NamedParameters свойство.

Установите your_command_object.NamedParameters в True перед выполнением.

1 голос
/ 28 ноября 2011

Без вашей дополнительной информации я бы сделал это следующим образом:

sqlcommand.Parameters.Add("@blahblah", SqlDbType.VarChar).Value = Request.Form("blahblah")
sqlcommand.Parameters.Add("@lastUpdate", SqlDbType.DateTime2).Value = Now()

Лучшим подходом (если это возможно) было бы оставить обновление поля lastUpdate для запуска в базе данных.

...