Установка возвращаемого значения из хранимой процедуры при условии if - PullRequest
1 голос
/ 06 декабря 2010

У меня SP с некоторым условием, подобным этому

IF NOT EXISTS (Select * from bom_steel where fpart = @fpart)
        BEGIN
            INSERT INTO bom_steel 
            VALUES (@fPart,@fL,@fH,@fW,@fDesc)
        END
    ELSE if(Select * from Employee where Empid = @empid)
        BEGIN
            Return  ‘1’
        END
Else
Begin
UPDATE bom_steel 
            SET fl=@fl, fh=@fH, fW=@fW 
            where Empid =@ empid
end

when this condition passes , I am returning an value  as  1
ELSE if(Select * from Employee where Empid = @empid)
        BEGIN // here i will  to be  doing any operation(DML) .so i want to just return an value as  '1'                
               Return  ‘1’
        END

В моем коде позади
Здесь cmd это SqlCommand

Int intcount= cmd.ExecuteNonQuery();

Здесь в этом состоянии оно всегда возвращает значение как -1;

Даже если я устанавливаю возвращаемое значение как «1», оно все еще возвращается, если значение равно -1

Может ли кто-нибудь сказать мне, что я должен сделать, чтобы вернуть оттуда значение как 1

любая помощь будет отличной спасибо

Ответы [ 2 ]

1 голос
/ 06 декабря 2010

Попробуйте сделать

Int intcount= cmd.ExecuteScalar();

вместо

Int intcount= cmd.ExecuteNonQuery();

ExecuteNonQuery () возвращает только количество затронутых строк.

Кроме того, дополнительно удалите одинарные кавычки в возвращаемом значении, как указано Эндрю ниже, или вместо этого измените тип intCount на string.

1 голос
/ 06 декабря 2010

Вы пытаетесь вернуть символьное значение, а не int.Попробуйте удалить одинарные кавычки.

Также, что сказал InSane;ExecuteNonQuery() возвращает количество затронутых строк.Хотя это заставляет меня задуматься о вашем примере;с чего бы это вернуть -1?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...