2011-03-13 3 views
2
public static long callproc() 
{ 
    DbCommand command = db.GetStoredProcCommand("dbo.proc"); 
    db.AddOutParameter(command, "@proc_id", DbType.Int64, 8); 
    db.ExecuteNonQuery(command); 
    return long.Parse(db.GetParameterValue(command, "@proc_id").ToString()); 
} 

매개 변수를 사용하는 가장 좋은 방법입니까?매개 변수 처리

답변

2

함수 GetParameterValue()은 .NET Framework의 일부가 아니므로 그 기능이 무엇인지 잘 모르겠습니다.

어쨌든 SqlInt64string으로 변환 한 다음 long으로 변환하는 것 같습니다. 이것은 효과가 있지만 먼 길을 걷고 있습니다. SqlInt64long 사이의 암시적인 변환이 있습니다. 시도 :

return (long) command.Parameters["@proc_id"].Value; 

이렇게하면 중간에 string이 필요하지 않습니다.

+0

감사합니다. 나는 그것을 시도 할 것입니다. "db.AddOutParameter (command,"@proc_id ", DbType.Int64, 8)"변수의 크기는 어떻습니까? 어떻게하면 8이 될 수 있을까요? – Naor

+1

@Naor : Int64는 64 비트를 차지하므로 항상 8 바이트를 차지합니다. 'size' 매개 변수는 선택 사항입니다. 제 경험상 문자열에만 필요합니다. – Andomar

+0

옵션은 무엇입니까? 나는 그것을 넣어야한다. 다른 옵션은 없다 .. – Naor