PDA

View Full Version : سوال: انتقال اطلاعات از یک datagridview به datagridview دیگر



jafarpalideh
پنج شنبه 25 بهمن 1397, 10:13 صبح
سلام.
طبق عکس من میام و اسم اپراتور رو سرچ میکنم و وقتی روی دکمه کلیک شد میفته تو گرید پایین .
مشکلم اینه که فقط واسه اولین رکورد ردیف تکراری رو نمیاره . ولی بعد از اون اگه رکورد تکراری باشه جلوش رو نمیگیره .
مشکل کجاست دوستان ؟




for (int i = 0; i <= dataGridView1.Rows.Count - 1; i++)
{
bool rowAlreadyExist = false;
bool checkedCell = Convert.ToBoolean(dataGridView1.Rows[i].Cells[0].Value);


if (checkedCell == true)
{
DataGridViewRow row = dataGridView1.Rows[i];
if (dataGridView2.Rows.Count != 0)
{
for (int j = 0; j <= dataGridView2.Rows.Count - 1; j++)
{
if (row.Cells["ColOperatorId"].Value.ToString() == dataGridView2.Rows[j].Cells["ColOperatorId1"].Value.ToString())
{
rowAlreadyExist = true;
break;
}


if (rowAlreadyExist == false)
{
dataGridView2.Rows.Add(row.Cells[1].Value.ToString(),
row.Cells[2].Value.ToString());
}
}
}
else
{
dataGridView2.Rows.Add(row.Cells[1].Value.ToString(),
row.Cells[2].Value.ToString());
}
}
}






149797

mr.sirwan
پنج شنبه 25 بهمن 1397, 11:03 صبح
میخوای فقط سطر هایلایت شده وارد گرید پایین بشه؟ یا هر تعداد سطری که نتیجه جستجو بود رو وارد کنی؟

Mahmoud.Afrad
پنج شنبه 25 بهمن 1397, 11:12 صبح
در مواردی که با حلقه وجود یا عدم وجود را چک میکنید نبایست داخل این حلقه(در اینجا حلقه داخلی) عمل افزودن را انجام بدهید.
for (int i = 0; i <= dataGridView1.Rows.Count - 1; i++)
{
bool rowAlreadyExist = false;
bool checkedCell = Convert.ToBoolean(dataGridView1.Rows[i].Cells[0].Value);

if (!checkedCell) continue;
DataGridViewRow row = dataGridView1.Rows[i];

for (int j = 0; j <= dataGridView2.Rows.Count - 1; j++)
{
if (row.Cells[1].Value.ToString() == dataGridView2.Rows[j].Cells[0].Value.ToString())
{
rowAlreadyExist = true;
break;
}
}

if (rowAlreadyExist == false)
{
dataGridView2.Rows.Add(row.Cells[1].Value.ToString());
}
}

jafarpalideh
پنج شنبه 25 بهمن 1397, 11:51 صبح
حرفتون درست بود . مشکل حل شد .