Hoje, um amigo me perguntou como obter o valor de retorno do procedimento armazenado no Data Access Application Block. Descobri que esse problema não foi mencionado nos artigos que escrevi antes. segue:
1. Primeiro crie um procedimento armazenado com um valor de retorno. Como exemplo, simplesmente criarei um procedimento armazenado da seguinte maneira:
criar teste proc
(
@id interno
)
como
declare @flag int
select * from person where id=@id
if @@rowcount > 0
definir @flag=1
outro
definir @flag=0
retornar @flag
O método que usamos para obter esse valor de retorno no programa é o seguinte:
[TestMethod]
público vazio TestReturnValue()
{
Banco de dados db = DatabaseFactory.CreateDatabase();
DbCommand dbcomm = db.GetStoredProcCommand("teste")
;
//A chave está aqui, adicione um parâmetro do tipo ReturnValue
db.AddParameter(dbcomm, "@RETURN_VALUE", DbType.String, ParameterDirection.ReturnValue, "", DataRowVersion.Current, null);
db.ExecuteNonQuery(dbcomm);
int testvalue = (int)dbcomm.Parameters["@RETURN_VALUE"].Value
;
}
Através do código acima, podemos obter o valor de retorno do procedimento armazenado no programa.
Pode haver muitas coisas que não mencionei nos artigos que escrevi antes. Espero que mais amigos possam me dar suas opiniões. Obrigado!