Gespeicherte Prozedur output-parameter zurückgibt @Wert
Bin ich zu kämpfen mit diesem Ding für die letzten Stunden und ich bin sicher, ich bin etwas fehlt klein, ich habe eine gespeicherte Prozedur in SQL Server 2008 und C# - code, den ich zurückgeben möchte, die output-Parameter von meinen gespeicherten Prozedur.
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;`
Ausgabe :
@Score
Was möglicherweise falsch mit mir oder meinem code. Bitte um Hilfe!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nur zu Lesen, die die tatsächlichen Werte von Ihrem output-Parameter:
Den
.ToString()
zurück nicht den Wert - Sie gibt den Namen des Parameters stattdessen...Sehen die MSDN-Dokumentation auf
SqlParameter
für mehr details.brauchen nur, dies zu tun.
Bevor sich die Ausgangs-Parameter, die Sie müssen schließen Sie den Daten-reader als
dann erhalten Sie die Ausgabe-Parameter wie
für weitere Hilfe konsultieren Sie diese http://msdn.microsoft.com/en-us/library/ms971497
>Versuchen Sie, diese seine arbeiten gut für die mehrere output-parameter: