Estoy luchando con esto durante la última hora y estoy seguro de que me falta algo pequeño, tengo un procedimiento almacenado en SQL Server 2008 y un código C# que deseo devolver los parámetros de salida de mi procedimiento almacenado.El parámetro de salida de procedimiento almacenado devuelve @Value
SQL:
Alter Procedure dbo.GetAssessment
@UserID int,
@AssessmentName varchar(255),
@Score varchar(100) output,
@Completed varchar(10) output,
@DisplayName nvarchar(128) output,
@Result varchar(2500) output
as
begin
select @Score = A.Score, @Completed = A.Completed, @DisplayName = U.Displayname, @Result = A.Result
from Assessment A
inner join Users U
on U.UserId = A.UserID
where U.UserID = @UserId
and AssessmentName = @AssessmentName
end
GO
C#
String SScore, SName, SResult, SComp;
lblAsse.Text = Request.QueryString["AID"];
InsertAssessment(lblAsse.Text, "No", 2, "N/A", "N/A");
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SiteSqlServer"].ConnectionString))
{
SqlParameter outScore = new SqlParameter("@Score", SqlDbType.VarChar,100){ Direction = ParameterDirection.Output };
SqlParameter outComp = new SqlParameter("@Completed", SqlDbType.VarChar,10){ Direction = ParameterDirection.Output };
SqlParameter outName = new SqlParameter("@DisplayName", SqlDbType.NVarChar, 128) { Direction = ParameterDirection.Output };
SqlParameter outResult = new SqlParameter("@Result", SqlDbType.VarChar,2500){ Direction = ParameterDirection.Output };
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "GetAssessment";
cmd.Parameters.AddWithValue("@AssessmentName", lblAsse.Text);
cmd.Parameters.AddWithValue("@UserId", 2);
cmd.Parameters.Add(outScore);
cmd.Parameters.Add(outComp);
cmd.Parameters.Add(outName);
cmd.Parameters.Add(outResult);
cmd.ExecuteScalar();
SScore = outScore.ToString();
SName = outName.ToString();
SResult = outResult.ToString();
SComp = outComp.ToString();
conn.Close();
lblAsse.Text = SScore;`
Salida:
@Score
¿Qué puede estar mal conmigo o mi código. ¡Por favor ayuda!
Gracias por la respuesta, lo intenté también, obviamente, obtener el error no puede convertir el objeto. Lo convertí en una cadena, pero luego no se muestra nada a pesar de que inserto datos cada vez. ¿Crees que es quizás la forma en que obtengo los parámetros de salida? ¿Hay una mejor manera de hacer esto? –