2011-11-28 5 views
0

ASP 폼의 새 행을 내 서버의 데이터베이스에 삽입하려고합니다. 내가 서버에있는 항목을 볼 때 그들이 추가 사실이지만 그것은 실행 라인에서 모든 기능을 중지하지 것처럼datetime 필드에 Now() 삽입 (SQL Server 2005 9.0.5057)

, 그것은 같습니다

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

이 내가 얻을 오류는 다음과 같습니다

ODBC 드라이버

Microsoft OLE DB 공급자 80040e07

[Microsoft] [ODBC SQL Server 드라이버] [SQL 서버] 날짜 시간 데이터 형식에 문자 데이터 형식의 변환 범위를 벗어난 날짜 결과 가치

2011-11-28 15 : 52 : 추가 e./results.asp217

항목은 같은 열에있는 날짜가 13.000

I가있을 DateTime2 SQL 필드를 사용할 때만 노출 된 밀리 초 느낌입니다.

나는 행운으로 연구 한 후 시도했습니다 몇 가지 : 추가

  • 은 'Session.LCID = 2057은'- 일부 SQL 서버는 영국이나 미국의 설정이,이
  • 가 시도 사용자의 설정을 무시 FormatDateTime (Now(), 0 - 5)과 같은 다른 날짜 형식의 집합
  • 'On Error Resume Next'를 사용할 수 있지만 올바르게 수정하려고합니다.

도움을 주시면 감사하겠습니다. 귀하의 추가 정보없이

+0

더 많은 코드를 표시 할 수 있습니까? 특히 SQL 명령을 작성하고 매개 변수를 추가하는 방법은 무엇입니까? –

+0

데이터베이스 데이터 유형이란 무엇입니까? 그리고 귀하의 코드가 "잘못된"주문 (미국 대 영국 날짜)으로 날짜를 쓰지 않는다는 것을 확인 했습니까? Now.ToString ("yyyy-MM-dd HH : mm : ss") 대신 datetime을 쓸 수 있습니까? –

+0

@Miika L. - 'Session.LCID = 2057'(Locale ID 's) 추가에 대한 내 의견보기 - 이것은 날짜가 올바른 형식으로 전달되는지 확인하는 것입니다. ToString()은 vbscript의 CStr()이기도합니다. 데이터베이스 데이터 유형은 datetime (datetime2가 아님)입니다. –

답변

1

나는 이런 식으로 할 것 :

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

가장 좋은 방법을 (가능하다면) 데이터베이스에서 트리거 할 lastUpdate 필드를 업데이트 떠날 것이다.

+0

데이터베이스에서 트리거링하는 것은 실제로 생각하지 못했던 좋은 아이디어입니다. 이 문제가 해결되면 내가 할 수있는 것을보고 당신에게 알려줄 것입니다. –

1

명명 된 매개 변수를 전달하려고 시도했지만 NamedParameters 값이 False (기본값)이면 매개 변수 이름이 무시됩니다 (매개 변수 순서 추가가 영향을 미칩니다). NamedParameters 속성을 참조하십시오.

실행 전에 your_command_object.NamedParameters에서 True으로 설정하십시오.

+0

감사하지만 asp.vbscript 'datetime'과 SQL Server 2005 'datetime'사이의 형식 문제가있는 것 같습니다. –

+0

날짜/시간 형식화 된 매개 변수 (모두 date, datetime, smalldatetime, datetime2)에 날짜/시간 변수를 전달하기 위해 서식을 지정할 필요가 없습니다 (문자열로 변환하지 말고 datetime으로 전달). 단지 시도. –

+0

나는 약간의 변형도 시도했다. 그러나 이것은 흥미 롭습니다 :http://technet.microsoft.com/en-gb/library/ee198928.aspx - (yyyymmddHHMMSS.xxx) 비록이 형식을 사용하려면 Now() 지정 방법을 잘 모르겠습니다. –