PDA

View Full Version : پیمایش دیتا گرید!



vB.N3T
سه شنبه 25 تیر 1392, 15:37 عصر
سلام
دوستان چطوری میشه سطر های دیتا گرید رو پیمایش کرد و اونارو تو لیست باکس ریخت

sohil_ww
سه شنبه 25 تیر 1392, 17:02 عصر
اگه می خوای سطر ی که انتخاب شده استفاده کنی
dgw1.currentrow.cells[dgwindex].value.tostring()
و یا 1 سرچ تو تالار که خیلی هست

vB.N3T
سه شنبه 25 تیر 1392, 17:17 عصر
از همین کد استفاده کردم
برنامه این شکلی هست
یه دکمه داره و وقتی رو دکمه زدی میاد سطری که انتخاب شده رو عددشو باینری میکنه
و هر بار باید دکمه رو بزنی

من میخوام یه بار که دکمه رو زدم خود برنامه با یه حلقه از سطر اول تا اخر بره دیگه دونه دونه انتخاب نکنم
اینو میدونم با حلقه foreach میشه این کارو کرد فقط نمیتونم کدشو بنویسم

roolinjax
سه شنبه 25 تیر 1392, 17:58 عصر
سلام
روش کار توی تاپیک دیگه ای که خودتون ایجاد کردین گفته شده
همونو استفاده کنید دیگه مگه مشکلی داره ؟

vB.N3T
سه شنبه 25 تیر 1392, 18:09 عصر
کدا مشکل ندارن..مشکلم اینه که
هر دفعه که روی سطری کلیک میکنم. هر عددی توی دیتا گرید هست باینری میشه و ادد میشه تو لیست باکس
بعد دوباره باید رو سطر دوم بزنم و روی باتن بزنم تا ادد کنه
میخوام این کار تو یه حلقه باشه که وقتی یک بار باتن رو زدم خودش تا اخر دیتا گرید بره ادد کنه

vB.N3T
سه شنبه 25 تیر 1392, 18:11 عصر
این کد نوشتم فقط میاد مقدار سطر اول رو تکرار میکنه

foreach (DataGridViewRow row in dataGridView2.Rows)
{
for (int k = 0; k <= dataGridView2.ColumnCount - 1; k++)
{
string a;
a = dataGridView2.Rows[k].Cells[k].Value.ToString();
listBox1.Items.Add(a);
}
}

Y_Safaiee
سه شنبه 25 تیر 1392, 18:16 عصر
با درود

اگه میخواین تمامی سطرها و سلول بخصوصی رو بررسی کنین :



foreach (DataGridViewRow r in dataGridView1.Rows)

{

listBox1.Items.Add(r.Cells[1].Value.ToString());

}

اگر میخواهید تمامی سطرها و تمامی سلول های هر سطر را بررسی کنید :


foreach (DataGridViewRow r in dataGridView1.Rows)
{
foreach (DataGridViewCell c in r.Cells)
{
listBox1.Items.Add(c.Value.ToString());
}
}


در ضمن دوست عزیز قبلا یک تاپیک ایجاد کرده اید و همین سوال رو پرسیدن لطفا از این به بعد وقتی تاپیکی ایجاد میکنی و سوالتونو میپرسین تو همون تاپیک منتظر جواب بمونین نه اینکه باز یک تاپیک دیگه بزنین!!

موفق باشی
بایت بایت

roolinjax
سه شنبه 25 تیر 1392, 18:34 عصر
در ضمن دوست عزیز قبلا یک تاپیک ایجاد کرده اید و همین سوال رو پرسیدن لطفا از این به بعد وقتی تاپیکی ایجاد میکنی و سوالتونو میپرسین تو همون تاپیک منتظر جواب بمونین نه اینکه باز یک تاپیک دیگه بزنین!!

جدا از بحث تهدید شما !!!! من فکر می کنم جواب شما راه حل مشکل ایشون نیست
من اینطور متوجه شدم که کاربر میاد یکی از سطر های دیتاگرید رو انتخاب می کنه و بعد رو دکمه اد میزنه و ایشون می خوان که از سطر انتخابی به بعد رو اد کنن نه کل دیتاگرید رو
درسته دوست عزیز ؟
اگر اینطوره بگید تا راهنمایی کنم در غیر اینصورت که جواب این دوستمون کاملا درسته
البته قسمت تهدیدشون رو هم در نظر بگیرید اونم با رنگ قرمز !!!!!!

Y_Safaiee
سه شنبه 25 تیر 1392, 18:42 عصر
جدا از بحث تهدید شما !!!! من فکر می کنم جواب شما راه حل مشکل ایشون نیست
من اینطور متوجه شدم که کاربر میاد یکی از سطر های دیتاگرید رو انتخاب می کنه و بعد رو دکمه اد میزنه و ایشون می خوان که از سطر انتخابی به بعد رو اد کنن نه کل دیتاگرید رو
درسته دوست عزیز ؟
اگر اینطوره بگید تا راهنمایی کنم در غیر اینصورت که جواب این دوستمون کاملا درسته
البته قسمت تهدیدشون رو هم در نظر بگیرید اونم با رنگ قرمز !!!!!!

دوست عزیزم

تهدید نبود بلکه راهنمایی و نصیحت بود.:قلب:
ایشون همین سوال رو تو تاپیک قبلیشون پرسیدن و نصف جوابهارو اوجا گذاشتن دوستان,باز ایشون اومدن یک تاپیک دیگه درست کردن که باعث شده سورس ها و راهنمایی دوستان منقطع بشه.
نیگا کنید در تاپیک زیر همین سوال رو آخرش پرسیدن و دوستان راهنمایی کردن

تاپیک (http://barnamenevis.org/showthread.php?408883-%D8%A8%D8%B1%DA%AF%D8%B1%D8%AF%D8%A7%D9%86%D8%AF%D 9%86-Value-%D8%AF%DB%8C%D8%AA%D8%A7%DA%AF%D8%B1%DB%8C%D8%AF!)

اگر قرار باشه برای هر موضوعی تاپیک ایجاد کنیم هم سرور سرعت لودش سنگین میشه و دلیل ناراحتی دوستان و هم فضای دیتابیس گرفته میشه.

راهنمایی من در آخر اینه یا از اول تو یک تاپیک سوال دیگه ای نپرسید یا اگر میپرسید تو همون تاپیک منتظر جواب باشین.:لبخندساده:

موفق باشین
بایت بایت

roolinjax
سه شنبه 25 تیر 1392, 18:59 عصر
دوست عزیزم

تهدید نبود بلکه راهنمایی و نصیحت بود.:قلب:
ایشون همین سوال رو تو تاپیک قبلیشون پرسیدن و نصف جوابهارو اوجا گذاشتن دوستان,باز ایشون اومدن یک تاپیک دیگه درست کردن که باعث شده سورس ها و راهنمایی دوستان منقطع بشه.
نیگا کنید در تاپیک زیر همین سوال رو آخرش پرسیدن و دوستان راهنمایی کردن

تاپیک (http://barnamenevis.org/showthread.php?408883-%D8%A8%D8%B1%DA%AF%D8%B1%D8%AF%D8%A7%D9%86%D8%AF%D 9%86-Value-%D8%AF%DB%8C%D8%AA%D8%A7%DA%AF%D8%B1%DB%8C%D8%AF!)

اگر قرار باشه برای هر موضوعی تاپیک ایجاد کنیم هم سرور سرعت لودش سنگین میشه و دلیل ناراحتی دوستان و هم فضای دیتابیس گرفته میشه.

راهنمایی من در آخر اینه یا از اول تو یک تاپیک سوال دیگه ای نپرسید یا اگر میپرسید تو همون تاپیک منتظر جواب باشین.:لبخندساده:

موفق باشین
بایت بایت

عزیزم منم با شما موافقم و تاپیک مورد نظر رو میدونم
اگر دقت کنید توی پست 4 همین تاپیک منم به اون تاپیک دیگه اشاره کردم
در نهایت هم که گفتم با شما موافقم
موید باشین
کیلو بایت کیلوبایت

vB.N3T
سه شنبه 25 تیر 1392, 21:44 عصر
ممنون از همه مرسی
اول معذرت خواهی بابت همه چیز

جناب صفایی عزیز کدی که شما دادی این خطا رو میده
Object reference not set to an instance of an object.

یا مرتبه دیکه کل برنامه رو بگم شاید بالا درست توضیح نداده باشم

یه برنامه دارم یه سری عدد تو دیتا گرید دارم مثلا 1 4 5 7 99 45

بعد تو رویداد کلیلک باتن نوشتم

a = Convert.ToInt32(dataGridView1[j, dataGridView1.CurrentRow.Index].Value.ToString());

و ادامه کد ها که عدد رو که انتخاب کردم رو باینری میکنه و تو لیست باکس ادد میکنه

من میخوام کدی بنویسم که وقتی بار اول کلیک کرد
از سطر اول دیتا گرید شروع کنه تا سطر اخر عددی که توش هست رو بریزه تو لیست باکس!!!!

این کد هم نوشتم

foreach (DataGridViewRow row in dataGridView2.Rows)
{
for (int k = 0; k <= dataGridView2.ColumnCount - 1; k++)
{
string a;
a = dataGridView2.Rows[k].Cells[k].Value.ToString();
listBox1.Items.Add(a);
}
}

که تو عکس هم مشاهده میکنید فقط سطر اولو تکرار میکنه

sohil_ww
سه شنبه 25 تیر 1392, 21:59 عصر
شما یک سطر عمودی ثابت داری و سطر های افقی متغیر یا به عبارت دیگه شما میخوای مقدار های که تو column دیتا گریدتون در rows های مختلف بدست بیاری ؟ درسته ؟!
اگه اره از این کد استفاده کن
for (int i =Convert.ToInt32( dataGridView1.CurrentRow.Index); i <= dataGridView1.RowCount; i++)
{

dataGridView1[0, i].Value.ToString(); // dataGridView1[columnIndex,Rows]
}

امیدوارم موفق باشی

sohil_ww
سه شنبه 25 تیر 1392, 22:00 عصر
البته اگه سطر ها تم مختلف باشن تو کد بالا باید int columns عوض کنی از یه حلقه for تو در تو استفاده کن مثل دسترسی به آرایه های 2 بعدی

roolinjax
چهارشنبه 26 تیر 1392, 18:06 عصر
این کد هم نوشتم

foreach (DataGridViewRow row in dataGridView2.Rows)
{
for (int k = 0; k <= dataGridView2.ColumnCount - 1; k++)
{
string a;
a = dataGridView2.Rows[k].Cells[k].Value.ToString();
listBox1.Items.Add(a);
}
}


یه سوالی از خدمت شما دارم دوست عزیز :
نقش حلقه ی foreach در قطعه کدی که نوشتین چیه ؟
اگر بخوام قطعه کد خودتون رو تصحیح بکنم به این شکل میشه :

string a;
for (int k = 0; k <= dataGridView2.ColumnCount - 1; k++)
{
a = dataGridView2.Rows[k].Cells[0].Value.ToString();
listBox1.Items.Add(a);
}

hamid_0341
چهارشنبه 26 تیر 1392, 18:21 عصر
ببخشید میون کلام اساتید بزرگ من صحبت میکنم
اقا اسم Column که این اطلاعات عدد توش هست چیه ؟
اونو بزار جای این yourcolumn ببین مشکلت حل میشه ؟
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{ string name = "";
name = (dataGridView1.Rows[i].Cells["Yourcolumn"].Value.ToString()); }