SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ELawshea

    ELawshea

    26 Mayıs 2008
  • gadgetgal38

    gadgetgal38

    9 HAZİRAN 2009
  • KRQE

    KRQE

    6 AĞUSTOS 2007