PDA

View Full Version : سوال: runtime error



hasti19
پنج شنبه 02 مرداد 1393, 12:29 عصر
سلام. کسی میدونه این runtime error برای چیه؟

121493

shahram hosseini
پنج شنبه 02 مرداد 1393, 13:56 عصر
چند خط دستور دیگر قبل از خط را هم بزار

alighorbanip
پنج شنبه 02 مرداد 1393, 19:41 عصر
اینجوری که نمیشه فهمید کدت رو کامل بزار

hasti19
پنج شنبه 02 مرداد 1393, 23:37 عصر
ظاهرا این بخش از کد رو خودش اضافه می کنه.
من دارم یک منو با استفاده از تابع بازگشتی می نویسم . وقتی برای اولین بار توی قسمت page_load تابع را فراخوانی می کنم این ارور رو میده.






protectedvoid Page_Load(object sender, EventArgs e)
{
AdminManagementDataContext md = newAdminManagementDataContext(Config.strcon);
var parnt = md.TBL_Menus.Where(z => z.Menu_Parent == "0").Select(z => z).ToList();
StringBuilder s = newStringBuilder();
if (parnt.Count>0){
foreach (var p in parnt)
{
string l = string.Format("<a class='menuitem submenuheader' href='{0}'>{1}</a>", p.Menu_Url, p.Menu_Name);
s.Append(l);
MyDynamic(p);
}

}
}
publicvoid MyDynamic(List<TBL_Menu> mnudynamic)
{
AdminManagementDataContext md = newAdminManagementDataContext(Config.strcon);
var Sb = newStringBuilder();
Sb.Append("<ul>");
foreach (var parent in mnudynamic)
{
string line = string.Format(@"<li><a href=""{0}"">{1}</a>" , parent.Menu_Url,parent.Menu_Name);
using (AdminManagementDataContext con = newAdminManagementDataContext(Config.strcon))
{
var submnu = con.TBL_Menus.Where(z => z.Menu_Parent == parent.Menu_ID.ToString()).Select(z => z).ToList();
if (submnu.Count >= 0)
{
Sb.Append(line);
MyDynamic(submnu);
}
else
{
Sb.Append(line);
}
Sb.Append("</li>");
}
}
Sb.Append("</ul>");
}



نمی دونم چرا کدها رو بهم ریخته نشون میده. این هم تصاویر کدها:
121515
121516
121514

abbas.oveissi
جمعه 03 مرداد 1393, 00:37 صبح
سلام. کسی میدونه این runtime error برای چیه؟

121493
دلیلش اینه تابع MyDynamic را با پارامتر های اشتباه فرخوانی کردید و ویژوال استدیو برای اینکه از خطا جلوگیری کنه همچین تابعی با اون نام ساخته تا دیگه خطا پیش نیاد.این خط کد رو توش میذاره تا بفهمید نیاز هست این تابع را با پارامترهای ورودی جدید پیاده سازی کنید وگرنه این خط رو میتونید پاک کنید و برنامه رو اجرا کنید.شما باید به MyDynamic یک لیست بفرستید اما بجای لیستی از TBL_Menu ها فقط یک شیء TBL_Menu ارسال کردید.

hasti19
جمعه 03 مرداد 1393, 00:52 صبح
من اینطوری تبدیل به لیست کردم. ولی بازهم همون خطا رو میده.

121518

abbas.oveissi
جمعه 03 مرداد 1393, 01:32 صبح
خب الان باز هم درسته mb یک لیست هست اما وقتی با foreach پیمایشش میکنید هر p میشه یک شی ء از نوع TBL_Menu ،برای همین بجای اون متد اصلی که باید فراخوانی بشه ،اون متد اشتباهه فراخوانی میشه.

hasti19
جمعه 03 مرداد 1393, 19:33 عصر
پس باید چیکار کنم؟