2015-01-15 2 views
0

DateTime을 SQL Server의 저장 프로 시저에서 가져 오려고합니다.저장 프로 시저 오류에서 DateTime 가져 오기

저장 프로 시저 변수 : 나는 다음과 같은 오류가 발생, 나는 그것이 무엇인지에 잃은에서 나는 내 C#의 CF 2.0 프로그램

DateTime tempDT = Convert.ToDateTime(sqlcmd.Parameters["@TempDateTime"].Value); 

에 오류가 밖으로

@TempDateTime DateTime = '' OUTPUT 
SET @TempDateTime = GETDATE() 

라인. 저장 프로 시저가 null을 돌려 보낼 수 있습니까? 저장 프로 시저를 실행하면 다른 코드에서 제대로 실행됩니다. DateTime 받기 및 테이블에 삽입,하지만 DateTime var 검색하려고하면 오류가 발생했습니다.

System.IndexOutOfRangeException는
되지 않은 메시지이었다 = "은 {0} {1} {2}이에 포함되지로 {3}."

스택 트레이스 : System.Data.SqlClient.SqlParameterCollection.RangeCheck()에서
Missouri_Scanning_Utility.Form1에서 System.Data.SqlClient.SqlParameterCollection.get_Item()에서 Missouri_Scanning_Utility.Form1.updateDatabase
()
에서
.tmrUpdateDatabase_Tick() System.Windows.Forms.Timer._WnProc()에서
System.Windows.Forms.ApplicationThreadContext._InternalContextMessages()에서 Microsoft.AGL.Forms.EVL.EnterMainLoop
()
에서

+0

나는 당신의 제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

+0

C# 코드에서'@ TempDateTime' 매개 변수를 출력으로 정의 했습니까? 'Direction = ParameterDirection.Output' –

+0

@JasonFaulkner 방금 그 코드 행이 위와 같은 오류가 발생했습니다. – Lgwells1

답변

0

당신이 당신의 전화에 보낼 수있는 매개 변수 값을 정의, 당신은 OUTPUT 매개 변수를 선언해야 Missouri_Scanning_Utility.Program.Main()에서
System.Windows.Forms.Application.Run()에서따라서. 당신이 게시 코드의 관련 부분을 가지고 있지 않기 때문에

, 여기에이 작업을 수행하는 일반적인 절차는 다음과 같습니다

var tempDateTimeParam = new SqlParameter("@TempDateTime", SqlDbType.DateTime) 
{ 
    Direction = ParameterDirection.Output 
}; 

myCommand.CommandType = CommandType.StoredProcedure; 
myCommand.Parameters.Add(tempDateTimeParam); 
// Add additional params. 

// Execute stored proc. 

// Read result from output param which should now have a value. 
var tempDateTimeValue = (DateTime)tempDateTimeParam.Value; 
+0

그 것이었다. 내 라인은 조금 달라 보이지만 모두 잘됐다. sql.cmd.Parameters.Add ("@ TempDateTime", SqlDbType.DateTime) .Direction = ParameterDirection.Output; – Lgwells1

+0

@ Lgwells1 - 다행이었습니다. 건배. –

관련 문제