PDA

View Full Version : ایجاد شی به تعداد رکوردهای موجود در دیتابیس



seniamail
شنبه 10 اردیبهشت 1390, 14:47 عصر
سلام
بنده میخوام در حالی که برنامه اجرا هست به تعداد رکورد های موجود در جدولی از دیتابیس، textbox ایجاد کنم که نام اونها آی دی رکورد مورد نظر باشه. و میخوام رویداد text Change اونها یک کار خاص را باتوجه به آی دی رکورد انجام بده؟ چطور میشه اینکار رو کرد؟

seniamail
پنج شنبه 15 اردیبهشت 1390, 13:23 عصر
من در ایجاد اشیا در هنگام اجرای برنامه مشکل ندارم فقط سوالم در مورد نام گذاریشونه

exlord
پنج شنبه 15 اردیبهشت 1390, 18:56 عصر
2 کار میتونی انجام بدی ...
اشیا ساخته شده رو بریز توی یه Dictionery و Id مورد نظرتو بده به Key
و یا اینکه id رو بزار تو Tag شیع مورد نظر

seniamail
جمعه 16 اردیبهشت 1390, 09:06 صبح
ممنون میشم اگه یه مثال اینجا بذارید یا یه نمونه کد آپ کنید

exlord
جمعه 16 اردیبهشت 1390, 11:02 صبح
Dictionary<string, TextBox> textboxes1 = new Dictionary<string, TextBox>();//Key=ID , Value=TextBox
Dictionary<TextBox, string> textboxes2 = new Dictionary<TextBox, string>();//Key=TextBox , Value=ID



foreach (DataRow row in dt.Rows)
{
TextBox t = new TextBox();
t.TextChanged += TextBox_TextChanged;
textboxes1.Add(row["ID"].ToString(), t);//<--- Dictionery1
textboxes2.Add(t, row["ID"].ToString());//<--- Dictionery2
t.Tag = row["ID"].ToString();//<---------Tag
this.Controls.Add(t);
}

void TextBox_TextChanged(object sender, EventArgs e)
{
TextBox t = (sender as TextBox);
string ID = t.Tag.ToString();//<---------Tag
ID = textboxes1.First(n => n.Value == t).Key;//<--- Dictionery1
ID = textboxes2[t];//<--- Dictionery2
}

seniamail
دوشنبه 02 خرداد 1390, 09:17 صبح
من این کد رو برای تایمر بازسازی کردم و جواب هم گرفتم فقط یه مشکل اینجا هست که وقتی رویداد Tick رخ میده با توجه به آی دی رکورد یک کار خاصی انجام میشه ولی وقتی روی یکی از آی دی ها مشکل رخ میده و برنامه برای چند ثانیه متوقف میشه، رویداد tick تا زمانی که این مشکل برطرف نشده کار آی دی بعدی رو شروع نمیکنه. سوالم اینه که میشه کاری کرد که رویداد tick به صورت موازی برای هر آی دی عمل کنه؟

seniamail
دوشنبه 02 خرداد 1390, 09:23 صبح
من این کد رو برای تایمر بازنویسی کردم و جواب هم گرفتم که با توجه به آی دی رکوردم در رویداد tick یه کاری انجام میشه فقط مشکلی که هست اینه که وقتی رویداد tick در یک آی دی با Exception مواجه میشه چند ثانیه ای متوقف میشه و تا از این حالت خارج نشه سراغ آی دی بعدی نمیره.
آیا میشه کاری کرد که رویداد tick به طور موازی عمل کنه؟

exlord
دوشنبه 02 خرداد 1390, 12:11 عصر
توی Tick به تعداد رکردها Thread جدید بساز و کارتو توی اون ترد انجام بده ...