Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erhalten Sie den Rückgabewert von der Prozedur SQL Server 2005 zu C#

Das liegt daran, dass Sie den Parameter in .NET als ReturnValue definieren, was tatsächlich dem Szenario entsprechen würde, in dem Sie RETURN innerhalb der gespeicherten Prozedur verwenden, um eine Ganzzahl zurückzugeben (was Sie nicht tun).

Stattdessen müssen Sie den @strFailedEMPID-Parameter als ParameterDirection.Output in Ihrem .NET-Code definieren. Wenn Sie einen Wert übergeben und über den Parameter ausgeben möchten, verwenden Sie ParameterDirection.InputOutput.

Nachdem Sie den Sproc ausgeführt haben, müssen Sie nur noch:

string value = lsqlCmd.Parameters["@strFailedEMPID"].value;

Also...

lsqlParam = new SqlParameter("@strFailedEMPID ", SqlDbType.VarChar);
lsqlParam.Value = "0";
lsqlParam.Direction = ParameterDirection.InputOutput;
lsqlCmd.Parameters.Add(lsqlParam);

lsqlCmd.ExecuteNonQuery();
string value = lsqlCmd.Parameters["@strFailedEMPID"].value;