PDA

View Full Version : مشکل با متدی که مقدار بازگشتی ان لیست یا رشته است



xsbehx
شنبه 30 خرداد 1394, 22:59 عصر
سلام
من یک متد نوشتم که کار select رو انجام می ده.
می خوام وقتی عملیات مورد با موفقیت انجام شد، لیستی از داده ها رو برگردونه و اگر هم مشکلی اتفاق افتاد خطای مورد نظر رو برگردونه
مشکل اینجاست که اگر من نوع بازگشتی متد رو از نوع لیست تعریف کنم دیگه نمی تونم پیغام خطا رو برگردونم و اگر رشته بکنم نمی تونم لیستی از داده ها رو برگردونم
من کدهای استفاده شده تو لایه DAL رو اینجا می یارم.


public List<Options_Model> Select_DAL()
{
try
{
List<Options_Model> list = new List<Options_Model>();
Options_Model _entity = new Options_Model();
foreach (var item in db.spOptions_Select().ToList())
{
_entity.fldOptionId = item.fldOptionId;
_entity.fldOptionName = item.fldOptionName;
list.Add(_entity);
}
return list;
}
catch (Exception ex)
{
return ex.InnerException.Message;
}
}

malloc
یک شنبه 31 خرداد 1394, 00:19 صبح
خوب اون لیست شما چه چیزایی داره ؟؟؟؟

من دقیقا نمیدونم شما چیکار کردی اما من روشم اینه که یه ساختار رو برمیگردونم اگه خالی باشه قطعا مقدار آی دی اون ساختار خالی برمیگرده . پس میتونم تشخیصش بدم

xsbehx
یک شنبه 31 خرداد 1394, 00:58 صبح
لیست من دوتا فیلد بیشتر نداره
fldOptionId و fldOptionName

من مشکلی با تشخیص این که مقدار برگشته یا نه، ندارم. چون کافیه تو کدها بالا تو قسمت return مقدار null بدم. بعدا میتونم چک کنم و بگم اگر null بود یعنی مشکلی پیش اومده.
اما من دیگه نمی دونم متن خطا دقیقا چی بوده - چون تو روشی که تو بالا گفتم من می تونم متن خطای رو هم بدست بیارم.
اما از این بگذریم. روشی که شما گفتیم یک ساختار رو بر می گردونید چطوریه؟
ممنون می شه یه توضیح بدید.
چون روش من مشکله دیگه هم داره. و اون هم اینه که اگر داخل جدول رکوردی نباشه هم null پاس داده می شه و نمی شه این دوتا رو از هم جدا کرد و تشخیص داد!؟

malloc
یک شنبه 31 خرداد 1394, 03:07 صبح
تموم شد و رفت .... شما اگه همه چیز اوکی باشه یه name , id برمیگردونید درسته ؟؟؟

حالا پیشنهاد من اینه که وقتی خطا خود هم همون دوتا رو برگردونید اما به id مقدار -1 بدید و متن خطا رو هم به name بدید .... بعد اونو چک کنید اگه id برابر با -1 بود یعنی خطایی رخ داده و متن خطا رو از داخل name بخونید والا که کارتون رو ادامه بدید

نمیدونم اصولیه یا نه اما اگه من بودم همین کاریو که گفتم انجام میدادم