내 .Net 응용 프로그램의 사용자 지정 역할 공급자를 구현하려고합니다. 임은 사용자가 추가 역할이 이미저장 프로 시저의 반환 값 캡처
SqlConnection sqlConnection = new SqlConnection(conn);
SqlCommand sqlCommand = new SqlCommand("aspnet_Roles_RoleExists", sqlConnection);
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.Parameters.Add("@RoleName", SqlDbType.VarChar, 256).Value = "/";
sqlCommand.Parameters.Add("@ApplicationName", SqlDbType.VarChar, 256).Value = roleName;
sqlCommand.Parameters.Add("@ReturnValue", SqlDbType.Int,4).Direction = ParameterDirection.ReturnValue;
try
{
sqlConnection.Open();
sqlCommand.ExecuteNonQuery();
int x = (int)sqlCommand.Parameters["@ReturnValue"].Value;
if ((int)sqlCommand.Parameters["@ReturnValue"].Value == 0)
...
문제처럼 Asp.NET의 역할 공급자 저장 프로 시저를 사용하여 DB에 존재 아닌지 확인하려고하는 것은입니다 내가 역할 예 admin
을 추가하고 SP를 실행할 때 수동으로
DECLARE @return_value int
EXEC @return_value = [dbo].[aspnet_Roles_RoleExists]
@ApplicationName = N'/',
@RoleName = N'admin'
SELECT 'Return Value' = @return_value
같은 데이터베이스에서 그것은 나에게 정확한 결과를 제공하지만 응용 프로그램에서 내가 문
(int)sqlCommand.Parameters["@ReturnValue"].Value
,536에게 다시 역할
admin
을 추가하려고하면
항상 내게 0
주세요. 사람이 동작은 저장 프로 시저에 의해 예상 값을 반전하기 때문에 더 가능성이 높습니다
중복 http://stackoverflow.com/questions/5412256/return-value-using-sqlcommand –
@SebastianMeine하지만' –
을 SafeDataReader'로 메신저 종류의 모든 클래스를 사용하지 않는 당신이 ... –