zurück Ich habe mit dieser Sache für die letzte Stunde zu kämpfen und ich bin sicher, dass ich etwas kleines vermisse, ich habe eine gespeicherte Prozedur in SQL Server 2008 und C# -Code, die ich zurückgeben möchte die Ausgabeparameter meiner gespeicherten Prozedur.Gespeicherte Prozedur Ausgangsparameter gibt @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;`
Ausgang:
@Score
Was möglicherweise falsch mit mir sein kann, oder meinen Code. Bitte helfen Sie!
Danke für die Antwort, ich habe das auch versucht, offensichtlich den Fehler kann Objekt nicht konvertieren. Konvertiert es in eine Zeichenfolge, aber dann wird nichts angezeigt, obwohl ich jedes Mal Daten einfüge. Denkst du, es ist vielleicht die Art, wie ich Output-Parameter bekomme? Gibt es einen besseren Weg, dies zu tun? –