PDA

View Full Version : سوال: راهنمایی - مشکل استفاده از for



ramin.norouzi65
دوشنبه 09 دی 1398, 09:42 صبح
با سلام خدمت دوستان
من چندخط کد نوشتم که توش تاریخ شمسی و کانکت شدن به دیتابیس با لینکیو داره و با دو دستور for مقادیری از دیتابیس رو میخونه و خروجی یک for به صورت باتون و دیگری به دیتاگرید ویو منتقل میشه
مشکل اینجاست که دو دستور for باهم اجرا نمیشن محتوی اون for که پایین تر هست لود نمیشه!
هیچ خطایی هم نمیده. به عبارتی وقتی for مربوط به start_pm رو حذف میکنم. for قسمت start_dynamic_buttons لود میشه.
ممنون میشم راهنمایی بفرمایید.


public void PersianNowDate(out string PersianNDate)
{
PersianCalendar pc = new PersianCalendar();
string Date = pc.GetYear(DateTime.Now).ToString("0000") + "/" + pc.GetMonth(DateTime.Now).ToString("00") + "/" + pc.GetDayOfMonth(DateTime.Now).ToString("00");
PersianNDate = string.Format("{0}", Date.ToString());
}
private void MainForm_Load(object sender, EventArgs e)
{
lbl_version.Text = "1.0.0.1";

//Check Version
L2SQLDataContext dbconn = new L2SQLDataContext();
var query_version = from c in dbconn.tbl_INFOs where c.version==lbl_version.Text select c;
var result_v = query_version.ToList();
if (lbl_version.Text != dbconn.V_Last_Versions.Single().version)
{
MessageBox.Show("نرم افزار نياز به بروزرساني دارد. روي بروزرساني کليک کنيد");
btn_Update.Enabled = true;
}
else
btn_Update.Enabled = false;
lbl_Vdate.Text = result_v[0].fdate.ToString();

//Start_Shamsi Date Now
string dateNow;
PersianNowDate(out dateNow);
lbl_date.Text = dateNow;
//End_Shamsi date Now

//Start_PMs...
var query_pm = from m in dbconn.tbl_PMs where m.active == 1 select m;
var result_pm = query_pm.ToList();
dgv_pm.RowCount = result_pm.Count;


for (int k = 0; k <= result_pm.Count; k++)
{
dgv_pm.Rows[k].Cells["rows"].Value = (k + 1).ToString();
dgv_pm.Rows[k].Cells["title"].Value = result_pm[k].title;
dgv_pm.Rows[k].Cells["fdate"].Value = result_pm[k].fdate;
dgv_pm.Rows[k].Cells["text"].Value = result_pm[k].text;
}
//End_PMs...

//Start_Dynamic Buttons...
var query_buttons = from c in dbconn.tbl_LINKs where c.active == 1 orderby c.sortnum ascending select c;
var result_buttons = query_buttons.ToList();
for (int i= 0; i<= result_buttons.Count;i++)
{
Button btn_links = new Button();
btn_links.AutoSize = true;
btn_links.Name = "btn_links_" +result_buttons[i].code.ToString();
btn_links.Text = result_buttons[i].title.ToString();
btn_links.Tag = result_buttons[i].lvalue;
btn_links.Click += new EventHandler(btn_links_click);
flp_links.Controls.Add(btn_links);
}
//End_Dynamic Buttons...


}
private void btn_links_click(object sender, EventArgs e)
{
var link_value = ((Button)sender).Tag.ToString();
System.Diagnostics.Process.Start("explorer.exe", link_value);
}

the king
دوشنبه 09 دی 1398, 14:51 عصر
با سلام خدمت دوستان
من چندخط کد نوشتم که توش تاریخ شمسی و کانکت شدن به دیتابیس با لینکیو داره و با دو دستور for مقادیری از دیتابیس رو میخونه و خروجی یک for به صورت باتون و دیگری به دیتاگرید ویو منتقل میشه
مشکل اینجاست که دو دستور for باهم اجرا نمیشن محتوی اون for که پایین تر هست لود نمیشه!
هیچ خطایی هم نمیده. به عبارتی وقتی for مربوط به start_pm رو حذف میکنم. for قسمت start_dynamic_buttons لود میشه.
ممنون میشم راهنمایی بفرمایید.

موقعی که برنامه تازه شروع میشه یا فرم میخواد بالا بیاد همیشه این احتمال هست که خطایی رخ بده که نشون داده نشه. اول مطمئن بشید که کد خطای پنهان نداره.
یک راه ساده و ابتدایی اینه که کدتون رو از داخل MainForm_Load بردارید و داخل رخداد کلیک یک دکمه قرار بدید و با کلیک کردن روی دکمه اجراش کنید تا اگر در اجرا خطایی رخ میده متوجه ایراد کد بشوید.

ramin.norouzi65
سه شنبه 10 دی 1398, 08:19 صبح
موقعی که برنامه تازه شروع میشه یا فرم میخواد بالا بیاد همیشه این احتمال هست که خطایی رخ بده که نشون داده نشه. اول مطمئن بشید که کد خطای پنهان نداره.
یک راه ساده و ابتدایی اینه که کدتون رو از داخل MainForm_Load بردارید و داخل رخداد کلیک یک دکمه قرار بدید و با کلیک کردن روی دکمه اجراش کنید تا اگر در اجرا خطایی رخ میده متوجه ایراد کد بشوید.
ممنون از راهنمایی
نمیدونم چه اتفاقی افتاد ولی کد رو که از اول تیکه تیکه اضافه کردم تا ببینم کی خطا میده کلا خطا نداد و اجرا شد!
الان اوکی هست