PDA

View Full Version : نحوه برگرداندن یک فیلد با نوع nvarchar در stored prosedure



ahmadp
پنج شنبه 07 دی 1391, 21:52 عصر
سلام و خسته نباشید.
من دارم یه پروژه کار میکنم که میخوام فقط یک فیلد از دیتابیس برگردونم که نوع این فیلد nvarchar است و میخوام بصورت رویه ذخیره شده در linq باشه و بتونم تو سی شارپ ازش استفاده کنم!

من این رویه رو مینویسم

ALTER PROCEDURE _ReturnFamily
@userid int
AS
declare @x nvarchar(30)
select @x=Family from Users where @userid=User_id

RETURN @x


ولی این خطا رو میده

Msg 245, Level 16, State 1, Procedure _ReturnFamily, Line 7
Conversion failed when converting the nvarchar value 'vali' to data type int.


اگه میشه نحوه نوشتن رویه و همچنین نحوه استفاده ازآن در سی شارپ برام بگین!
تشکر

mohsen24000
پنج شنبه 07 دی 1391, 22:05 عصر
این پیغام خطا بخاطر اینه که یه SP فقط میتونه عدد برگردونه مگر اینکه یه متغییر از نوع OutPut تعریف کرده باشید.

CREATE PROCEDURE returnFamily
@userid int=null,
@family nvarchar(30)=null output
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select @family=family from Users where User_ID=@userid
END
GO

ahmadp
چهارشنبه 13 دی 1391, 19:01 عصر
سلام خسته نباشید.

ممنون،با این پروسیجری که نوشتید تونستم مقدار Family رو برگردونم!

ولی وقتی که میخوام با استفاده از LINQ این پروسیجر رو فراخوانی کنم دو تا ورودی میخواد.مانند این

http://s3.picofile.com/file/7605955799/vs.jpg

واسه ورودی دوم پروسیجر چی باید بنویسم؟
همچنین مقدار برگشتی این پروسیجر رو توی چه نوع متغیری بریزم؟
تو رو خدا راهنمایی کنید، تشکر

hossein_ignore
پنج شنبه 12 بهمن 1391, 00:01 صبح
string family;
linq.returnFamily(1, ref family);