PDA

View Full Version : سوال: جستجو بر در دیتاگرید فرم دیگر



sasan_22
دوشنبه 25 اردیبهشت 1391, 18:54 عصر
سلام
من برنامه ای نوشتم که تو اون ؛ دیتاگریدم را از بانکم پر می کنم(دیتا گرید تو form2 می باشد) قسمت سرچ برنامه تو form3 گذاشتم(شامل تکس باکس نام و فامیلی و دکمه سرچ) میخوام بدونم چطوری این عملو انجام بدم؟ یعنی چطور جستجو رو با اینکه تو یه فرم نیست انجام بدم؟:متفکر:
کارهایی که انجام دادم بدین شرحه:(در ضمن کدم کار میکنه ولی هیچ عکسالعملی نداره نه err نه چیز دیگه ای:ناراحت:)


private void btnsearch_Click(object sender, EventArgs e)
{

if (textBox2.Text != "" || textBox1.Text != "")
{
FrmMember mem_F = new FrmMember();
foreach (DataGridViewRow dr in mem_F.dataGridView1.Rows)
{
foreach (DataGridViewColumn dc in mem_F.dataGridView1.Columns)
{
dr.Cells[dc.Index].Selected = false;
}
}
//همه ی سلول هایی که با مقدار تکست باکس برابرند رو سلکت میکنیم
foreach (DataGridViewRow dr in mem_F.dataGridView1.Rows)
{
foreach (DataGridViewColumn dc in mem_F.dataGridView1.Columns)
{
if (dr.Cells[dc.Index].Value.ToString() == textBox1.Text ||
dr.Cells[dc.Index].Value.ToString() == textBox2.Text)
{
dr.Cells[dc.Index].Selected = true;
GNRL.MSG("Item is Founded.", MessageBoxIcon.Information, MessageBoxButtons.OK);
return;
}
}

}
}
else
{
GNRL.MSG("Please Enter Data For Search", MessageBoxIcon.Information, MessageBoxButtons.OK);
textBox1.Focus();
}
}

که تو اون FrmMembe
همون form2 است. لطفا کمک کنید ممنون.

Mahmoud.Afrad
دوشنبه 25 اردیبهشت 1391, 19:16 عصر
کار شما اشتباهه. شما دارید یک شئ جدید از فرم FrmMember میسازید که این شئ از فرمی که قبلا ایجاد شده متمایز هست. و دیتاگرید داخل این شئ جدید هیچ سطری نداره پس دستوارت حلقه انجام نمیشن. در ضمن حتی اگر انجام بشن شما نتیجه ای رو در گرید فرم دیگر نخواهید دید.
برای انجام جستجو شما باید از دستور سلکت از دیتابیس عمل جستجو رو انجام بدید و در دیتاگرید جدید نشان بدید.
اگر هم اصرار دارید عمل جستجو روی همین گرید انجام بشه باید عملیات جستجو رو در همین فرم انجام بدید نه فرم دیگه.

فرید نجفلو
دوشنبه 25 اردیبهشت 1391, 20:45 عصر
سلام
دوست عزیز علاوه بر نکته که دوستمون گفتن باید بگم ایراداتی تو کد نویسی هم دارید برای مثال به جای این همه کد :

foreach (DataGridViewRow dr in mem_F.dataGridView1.Rows)
{
foreach (DataGridViewColumn dc in mem_F.dataGridView1.Columns)
{
dr.Cells[dc.Index].Selected = false;
}
}

می تونستید بنویسید:

mem_F.dataGridView1.dataGridView1.ClearSelection()

من یه جستجوی صحیح رو تو این تاپیک (http://barnamenevis.org/showthread.php?333212-چگونگی-جستجو-درون-یک-دیتاگرید&p=1498011&viewfull=1#post1498011)گذاشتم یه سر بهش بزنید(البته VB.Net هست:چشمک:)

arminkhodaei
سه شنبه 26 اردیبهشت 1391, 00:22 صبح
درست میگند دوستان.

ببینید شما باید مثلاً زیر دکمه ای که فرم جدید را احضار میکنه، عملیات جست و جو را انجام بدید و با یک متغییر نتایج اون را به فرم های دیگه منتقل کنید.

hosseinenayati_2009
سه شنبه 26 اردیبهشت 1391, 03:15 صبح
سلام
همون جور که دوستان گفتن روش تون اشکال داره.
ولی اگر مجوبر هستید اطلاعاتی که داخل دیتا گرید ویو میریزید را همون وقت در یه جدول دخیره کنید و تو فرم که جستجو می کنید از محتویات اون جدول جستجو کنید.
یا که از tab control استفاده کنید

sasan_22
سه شنبه 26 اردیبهشت 1391, 07:16 صبح
:اشتباه:پس این طور(!).
مرسی از راهنماییتون