Web Devs
644 subscribers
218 photos
22 videos
17 files
233 links
Articles, News, Jokes, Quotes, Back-End and UI/UX for web developers.
Github : https://github.com/fullStackDevsGroup
Advertising: @adsfullStackDevs
Download Telegram
#SQLServer
#C#
#ASP.NET
#User_Defined_Table_Types
#TVP
#Table_Valued_Parameter

فرض کنید که شما توی برنامه تون درقسمت جستجو محصولات از یک استور پروسیجر استفاده میکنید که نیاز دارین یک بازه ای از قیمت(رکورد هایی از fromPrice ,toPrice) به ورودی اش اضافه کنید که بتونید تو بدنه استور پروسیجر فیلتر بازه قیمت را اعمال کنید . حالا شما باید این بازه قیمت را بصورت دیتا تیبل به متغیر های ورودی استور پروسیجر اضافه کنید .

در نظر داشته باشید که برای اینکه دیتا بیس بفهمه چه نوع دیتا تیبلی داریم بهش پاس میدیم باید ساختارش را تعریف کنیم.به این صورت که یه new query در sql server باز میکنیم و در دیتا بیس مورد نظر این ساختار رو بصورت زیر تعریف میکنیم :
CREATE TYPE [dbo].[PriceRanges] AS TABLE(
[PriceMin] [decimal](18, 4) NULL,
[PriceMax] [decimal](18, 4) NULL
)
GO


بعد از اجرای کد بالا در مسیرprogrammability/Types/User-Defined Table Types ذخیره میشود .درواقع شما الان یک user-defined table type تعریف کردید.

حالا میتونید این نوع دیتا تیبل را به استورپروسیجر مورد نظر اضافه کرد . مثل نمونه کد زیر :
CREATE PROCEDURE [dbo].[SearchProduct]
(
@CategoryIds nvarchar(MAX) = null,
@SectionIds nvarchar(MAX) = null,
@ManufacturerId int = 0,
@PriceRangeList dbo.PriceRanges READONLY

)
AS
BEGIN

/* another code */
IF EXISTS (SELECT 1 FROM @PriceRangeList)
BEGIN
...
END
END
GO

حال فقط کافیست زمانی که تو برنامه میخوایید از این استور پروسیجر استفاده کنید بازه قیمت را بصورت دیتا تیبل با همین ساختار پاس بدهید

@ArmanAbi