PDA

View Full Version : فراخوانی یک پروسیجر ذخیره شده با linq در asp.net



reza_magical
سه شنبه 23 آبان 1391, 11:08 صبح
سلام
من یه پروسیجر دارم که یک پارامتر را دریافت می کنه و تعدادی رکورد رو به عنوان خروجی برمیگردونه.
پروسیجر رو توی vs و در فایل linq to sql class درگ کردم ،
ولی نمی دونم توی کد بیهایند چجوری از این پروسیجر استفاده و فراخوانی کنم ؟
می خوام از تک تک رکوردهای که این پروسیجر برمیگردونه استفاده کنم. (بدون استفاده از گراید ویو)
توی وب فرم اینکارو می خوام انجام بدم، این هم پروسیجرم هست:



USE [BTM_DB]
GO
/****** Object: StoredProcedure [dbo].[select_topic] Script Date: 11/11/2012 13:37:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[select_topic]
@SqlTableName nvarchar(100),
@PageIndex int,
@PageSize int
AS
BEGIN
declare @SQLText nvarchar(500)

set @SQLText = 'SELECT * FROM (SELECT * , ROW_NUMBER() OVER(ORDER BY id) as RowNum FROM '+@SqlTableName+' ) as DerivedTableName WHERE RowNum BETWEEN '+ str(@PageIndex) +' AND'+ str((@PageIndex+ @PageSize) - 1)
exec(@SQLText)
END

خیلی جستجو کردم ، اما به نتیجه نرسیدم ، ممنون میشم راهنماییم کنید.

reza_magical
پنج شنبه 25 آبان 1391, 11:16 صبح
خوب انگارکسی پیدا نشد جواب این سئوال رو بده، خودم جوابششو پیدا کردم.
اینجا میزارم شاید برای کسی مفید باشه ، هر چند ساده و مبتدی هست.
بعد از اینکه پروسیجر رو به اصطلاح map یا درگ کردید ، از این طریق می تونید اونو فراخوانی کنید و از همه رکوردها و فیلدهایی که برمیگرونه استفاده کنید:



var query= lnq1.sp_name("param1","param2");

foreach (var q in query)
{
Literal1.Text = Literal1.Text + q.title;
}