Сегодня друг спросил меня, как получить возвращаемое значение хранимой процедуры в блоке приложения доступа к данным. Я обнаружил, что эта проблема не упоминалась в статьях, которые я писал ранее. Теперь я хотел бы добавить, что конкретное решение такое. следующим образом:
1. Сначала создайте хранимую процедуру с возвращаемым значением. В качестве примера я просто создам хранимую процедуру следующим образом:
создать тест процесса
(
@id int
)
как
объявить @flag int
select * from person, где id=@id,
если @@rowcount > 0
установите @flag=1
еще
установить @flag=0
вернуть @flag
Метод, который мы используем для получения этого возвращаемого значения в программе, следующий:
[TestMethod]
общественная недействительность TestReturnValue()
{
База данных db = DatabaseFactory.CreateDatabase();
DbCommand dbcomm = db.GetStoredProcCommand("test");
db.AddInParameter(dbcomm, "@id", DbType.Int32,1);
//Ключ здесь, добавляем параметр типа ReturnValue
db.AddParameter(dbcomm, "@RETURN_VALUE", DbType.String, ParameterDirection.ReturnValue, "", DataRowVersion.Current, null);
db.ExecuteNonQuery(dbcomm);
int testvalue = (int)dbcomm.Parameters["@RETURN_VALUE"].Value;
Assert.AreEqual(testvalue, 1);
}
С помощью приведенного выше кода мы можем получить возвращаемое значение хранимой процедуры в программе.
Возможно, есть много вещей, о которых я не упомянул в статьях, которые писал ранее. Надеюсь, что больше друзей выскажут мне свое мнение. Спасибо!