내가 현재의 DATAACCESS 블록을 배우고 매개 변수 엔터프라이즈 라이브러리 내가 어떻게 ExecuteSprocAccessor기업 도서관 6 ExecuteSprocAccessor는
를 사용하여 일련의 객체를 반환하는이 코드 인을 이해하려고 노력하고 있어요 6.
내가 사용하고있는 것 :
실행하면 "매개 변수 개수가 저장 프로 시저 값의 수와 일치하지 않습니다."가 표시됩니다. 오류. cmd.Parameters 콜렉션을 검사 할 때 위에서 언급 한 2 개의 매개 변수를 볼 수 있습니다.
저는 오류가 마지막 명령의 cmd.Parameters에 있음을 확신합니다. 문서에 따르면 객체 배열을 사용할 수 있습니다. DBParameter 컬렉션을 사용하려면 어떻게해야합니까?
== 업데이트 난 그냥 시도하고 객체 배열에있는 DbParameter를 번역 할 방법을 만들기로 결정 잠시 동안 대답을 찾고 후 2014년 3월 29일 ==
합니다. 이걸 만든 ....이 방법
public static object[] ParametertoObj(DbCommand cmd)
{
object[] obj = new object[cmd.Parameters.Count];
int i = 0;
foreach (DbParameter item in cmd.Parameters)
{
obj[i] = item.Value;
i++;
}
return obj;
}
중요한 것은 매개 변수들이 저장 프로 시저에서 호출되는 것과 동일한 순서로 컬렉션에 추가 할 필요가 있다는 것입니다.
나는 효율적인 방법이 있어야한다고 확신한다.
sp에 출력 매개 변수가있는 경우 –
@ShashankSood 값을 내 머리 꼭대기에서 꺼내는 방법은 IDataReader에 대한 액세스 권한과 액세스 권한이 있기 때문에 접근자를 사용하여 수행 할 수 있다고 생각하지 않습니다. get output 매개 변수는 실제 출력 매개 변수에 대한 액세스가 필요합니다. ADO.NET을 사용하여 출력 매개 변수를 가져 오려면 다음이 도움이됩니다. https://stackoverflow.com/questions/290652/get-output-parameter-value-in-ado-net. –
아니,이 방법으로 만 원했어. –