3 개의 OUTPUT 매개 변수가있는 SQL proc를 호출합니다. proc를 호출 한 후 params 중 하나가 다른 두 개가 수행 할 때 값을 반환하지 않습니다. 프로필러는 3 가지 값 모두가 반환되고 있음을 보여줍니다. proc 디렉토리에 다음과 같이저장 프로 시저에서 출력 매개 변수가 반환되지 않습니다.
params 객체를 파라미터는
@UsrVariableID INT OUTPUT,
@OrganisationName NVARCHAR(256) OUTPUT,
@Visible bit OUTPUT
과 PROC이처럼 호출하는 코드 ...
cm.Parameters.AddWithValue("@OrganisationName", name);
cm.Parameters["@OrganisationName"].Direction = ParameterDirection.Output;
cm.Parameters.AddWithValue("@Visible", visible);
cm.Parameters["@Visible"].Direction = ParameterDirection.Output;
cm.ExecuteNonQuery();
name = cm.Parameters["@OrganisationName"].Value.ToString();
visible = bool.Parse(cm.Parameters["@Visible"].Value.ToString());
id = int.Parse(cm.Parameters["@UsrVariableID"].Value.ToString());
가 실패 PARAM은
... 선언 @OrganisationName .
나는 param이 코드에서 유형 문자열이지만 proc에서는 NVARCHAR이기 때문에 궁금합니다.
누구나 아이디어가 있습니까?
당신이 실패했다고 말하면 tostring() 변환에서 에러를 던지 나 데이터를 반환하지 않습니까? SSMS에서 sproc을 실행할 때 오류없이 반환됩니까? –
아마 프로 시저 자체에 오류가 있습니다. 프로 시저에 실제로'SELECT @ OrganisationName = something' 또는'SET @ OrganisationName = something'이 있습니까? – configurator