1 NİSAN 2009, ÇARŞAMBA
C saklı yordam dönüş değeri almak#
Aşağıdaki sorgu var:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[Validate]
@a varchar(50),
@b varchar(50) output
AS
SET @Password =
(SELECT Password
FROM dbo.tblUser
WHERE Login = @a)
RETURN @b
GO
Bu gayet iyi derler.
C# ben bu sorguyu çalıştırmak ve dönüş değeri almak istiyorum.
Benim kod aşağıdaki gibidir:
SqlConnection SqlConn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MyLocalSQLServer"].ConnectionString.ToString());
System.Data.SqlClient.SqlCommand sqlcomm = new System.Data.SqlClient.SqlCommand("Validate", SqlConn);
string returnValue = string.Empty;
try
{
SqlConn.Open();
sqlcomm.CommandType = CommandType.StoredProcedure;
SqlParameter param = new SqlParameter("@a", SqlDbType.VarChar);
param.Direction = ParameterDirection.Input;
param.Value = Username;
sqlcomm.Parameters.Add(param);
SqlParameter retval = sqlcomm.Parameters.Add("@b", SqlDbType.VarChar);
retval.Direction = ParameterDirection.ReturnValue;
string retunvalue = (string)sqlcomm.Parameters["@b"].Value;
Not: özel Durum işleme kodu kısa tutmak için kesti. Her zaman son satırı, null döndürülür. Bu kod ile mantık hatası nedir?
Teşekkürler
CEVAP
1 NİSAN 2009, ÇARŞAMBA
retval.Direction = ParameterDirection.Output;
ParameterDirection.ReturnValue
"" yordam çıkış parametreleri değil. dönüş değeri için kullanılmalıdır Değeri RETURN
(parametre @RETURN_VALUE
adında SQL deyimi tarafından döndürülen alır.
RETURN @b
10 yerine**
Bu arada, dönüş değeri parametre her zaman int
, dize değil.
Bunu Paylaş:
T-SQL saklı yordam Seçilen değeri alma...
nasıl bir dönüş değeri almak için pyth...
Selenyum Javascript kodu dönüş değeri ...
Nasıl DbContext kullanmak için.Veritab...
SQL Server Saklı Yordam, fonksiyon vs....