PDA

View Full Version : مقدار بر گشتی Sp



مهیار.
شنبه 23 شهریور 1392, 18:26 عصر
سلام

میخوام از مقدار بازگشتی SP استفاده کنم؟ میخواستم کد سمت Sql هم بدونم .. میشه یه مثال بزنید..

parvizwpf
شنبه 23 شهریور 1392, 19:09 عصر
بهتره روی این مطالعه ای داشته باشید:
http://stackoverflow.com/questions/706361/getting-return-value-from-stored-procedure-in-c-sharp

esafb52
یک شنبه 24 شهریور 1392, 00:02 صبح
بفرما دوست عزیز این هم یک نمونه سمت sql

USE [D:\MY AZMOON\MYAZMOON\MYAZMOON\DBAZMOON.MDF]
GO
/****** Object: StoredProcedure [dbo].[adduser] Script Date: 09/14/2013 12:43:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC
[dbo].[adduser]
@user NVARCHAR(50),
@pass NVARCHAR(50),
@result INT OUTPUT
AS
IF (EXISTS(SELECT * FROM TBLADMIN WHERE USERNAME=@user))
set @result=1
ELSE
BEGIN

SET @result=0
INSERT INTO TBLADMIN
(
USERNAME,
[PASSWORD]
)
VALUES
(@user,@pass)
END
RETURN

مهیار.
یک شنبه 24 شهریور 1392, 14:27 عصر
ممنون.
من میخوام به این صورت باشه که از همون Retern که تو پرسیجر است استفاده کنم..
دستورات C هم میخوام.

مهیار.
یک شنبه 24 شهریور 1392, 16:54 عصر
دوستان منتظرم..

veniz2008
یک شنبه 24 شهریور 1392, 18:09 عصر
سلام.
برای استفاده از Return Value در stored procedure دیگه نباید پارامتر خروجی تعریف کرد بلکه باید از کلمه کلیدی Declare برای اعلان متغیر خروجی استفاده کنید و بعد از اون در بدنه sp، این مقدار رو Return کرد. در سمت سی شارپ کدهای دقیقا مثل همون حالتی هست که از پارامترهای خروجی استفاده می کنیم فقط نوع برگشتی رو به جای Output بر روی ReturnValue قرار میدیم.
مثال زیر یک sp هست که چک میکنه آیا یک شماره دانشجویی وجود داره یا نه.
کد sp :

create proc SearchOneStudent
@studentid int
as
declare @result int
if(EXISTS(select * from TblStudent where StdID = @studentid))
return 1
else
return 0

دستورات سی شارپ :

SqlConnection con = new SqlConnection("server = .\\md2012;DataBase = DBTest1;Integrated Security = True");
SqlCommand cmd = new SqlCommand("SearchOneStudent", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@studentid", TxtStudentID.Text.Trim());
cmd.Parameters.Add("@result", SqlDbType.Int);
cmd.Parameters["@result"].Direction = ParameterDirection.ReturnValue;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show(cmd.Parameters["@result"].Value.ToString());
موفق باشید.

مهیار.
یک شنبه 24 شهریور 1392, 18:16 عصر
مرسی .. واقعا متشکرم.:تشویق::تشویق: