PDA

View Full Version : مشکل با forach بعد از استفاده از پروسیجر جست و جوی دینامیک



xsbehx
یک شنبه 22 شهریور 1394, 18:32 عصر
سلام
من همیشه برای برگردوندت تعدای سطر از یک foreach استفاده می کنم
تو یه بخشی از پروژه نیاز شده تا من یک پروسیجر با داده های دینامیک بگیرم
کد پروسیجر به این صورت نوشته شده :


ALTER procedure [dbo].[abcde]
@fldStatusIdString nvarchar(max)
as
begin
set nocount on
begin try
declare @Query nvarchar(max)
set @Query = '
SELECT a.fldEstateId, a.fldEstateTitle, a.fldThumbnail,a.fldPrice,fldAcceptDate
FROM (
SELECT dbo.tblImages.fldEstateId, dbo.tblImages.fldThumbnail, dbo.tblEstates.fldEstateTitle,
dbo.tblEstates.fldPrice, dbo.tblEstates.fldAcceptDate, ROW_NUMBER() OVER (PARTITION BY dbo.tblImages.fldEstateId
ORDER BY dbo.tblEstates.fldAcceptDate) AS RowNumber
FROM dbo.tblImages INNER JOIN dbo.tblEstates ON dbo.tblEstates.fldEstateId = dbo.tblImages.fldEstateId
WHERE (dbo.tblEstates.fldStatusOfAccept = 1)'
set @Query +='and (fldStatusId in('+@fldStatusIdString+'))
) AS a
WHERE a.RowNumber = 1
order by fldEstateId
-- اگر شرط اخر رو از 1 به 2 تغییر بدم دومین عکس رو بر می گردونه و اگر سه کنم سومین عکس و ...
'
execute sp_executesql @Query
end try
begin catch
raiserror ('عملیات مورد نظر با اشکال مواجه شده است',11,1)
end catch
end


کا پروسیجر اینه که رشته از کلیدها رو به من برگردونه تا بر اساس اون من بتونم مطالبی رو نشون بدم. مثلا مطالبی تو دسته های خاص که قراره کد اون دسته ها به پروسیجر ارسال بشه به این صورت '1,4,9'
حالا مشکل اینجاست که من وقتی تو سی شارپ از این پروسیجر استفاده کنم، تو حلقه foreach زیر ToList خط می کشه می گه خطا داره
اگر پروسیجر معمولی باشه مشکلی نداره ولی اگر اونرو بصورت بالا نوشته باشیم(داده های ورودی با تعداد متغییر) به مشکل بر می خورم
اینهم کدهای سی شارپ



List<Join_Estates_Images_Model> ListAll = new List<Join_Estates_Images_Model>();
foreach (var item in db.abcde(fldStatusIdString).ToList())
{
Join_Estates_Images_Model _entity = new Join_Estates_Images_Model();
_entity.fldEstateId = item.fldEstateId;
_entity.fldEstateTitle = item.fldEstateTitle;
_entity.fldThumbnail = item.fldThumbnail;
_entity.fldPrice = Convert.ToDecimal(item.fldPrice);
_entity.fldAcceptDate = item.fldAcceptDate;
ListAll.Add(_entity);
}
return ListAll;


متن خطا هم اینطوریه:



Error 14 'int' does not contain a definition for 'ToList' and no extension method 'ToList' accepting a first argument of type 'int' could be found (are you missing a using directive or an assembly reference?) E:\Project\tehranMatab\27Khordad\TehranMatab_UI\Te hranMatab_DAL\Join_Estates_Images_DAL.cs 174 38 TehranMatab_DAL

xsbehx
سه شنبه 24 شهریور 1394, 18:14 عصر
جواب سوال بالا (http://stackoverflow.com/questions/32563997/error-when-i-use-tolist-after-dynamic-procedure-name)