Я пытаюсь получить набор результатов и вернуть значение сохраненного процесса на сервере SQL 2008.Когда я запускаю proc в sql management studio, я получаю набор результатов и возвращаемое значение.
Однако, когда я пытаюсь получить значение в C # 4.0, значение параметра равно нулю.Вот мой код C #:
using (ConnectionManager<SqlConnection> cn = ConnectionManager<SqlConnection>.GetManager(CultureInfo.CurrentCulture.Name))
{
using (SqlCommand cm = cn.Connection.CreateCommand())
{
cm.CommandText = "Name of proc here";
cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.AddWithValue("@ApplicationId", ApplicationId);
cm.Parameters.AddWithValue("@Index", Index);
if (PageSize > 0)
cm.Parameters.AddWithValue("@PageSize", PageSize);
cm.Parameters.Add("@ReturnValue", SqlDbType.Int);
cm.Parameters["@ReturnValue"].Direction = ParameterDirection.ReturnValue;
using (IDataReader dr = cm.ExecuteReader())
{
SafeDataReader sdr = new SafeDataReader(dr);
while (sdr.Read())
{
UserApplicationEntity uae = new UserApplicationEntity();
uae.UserId = sdr.GetGuid("UserId");
uae.ExternalId = sdr.GetString("ExternalId");
Result.Value.Collection.Add(uae);
}
Result.Value.TotalResults = (int)cm.Parameters["@ReturnValue"].Value;
}
}
}
Последняя строка, где я вызываю Result.Value.TotalResults = (int) cm.Parameters ["@ ReturnValue"]. Value;где значение равно нулю.В каждом уроке или посте, которые я нашел, я, кажется, все делаю правильно.На данный момент я думаю, что мне просто не хватает чего-то маленького, и мне нужен еще один набор глаз.Я также пытался установить параметр возврата раньше всех остальных, поскольку в одном сообщении, которое я нашел на сайте MS, говорилось, что мне нужно, но независимо от того, где он находится, он возвращает ноль.