PDA

View Full Version : سوال: مقایسه دو datagridview و نمایش در datagridview سوم در صورت تکرار بیشتر از یکبار



hosseines
پنج شنبه 14 آبان 1394, 17:55 عصر
سلام
دو تا دیتاگرید دارم که هر دو شامل دو ستون (شماره حساب و مبلغ) می باشند میخوام با زدن دکمه بیاد دیتاگرید اول را با دومی مقایسه کنه اگر شماره حسابی در دیتاگرید دوم بیشتر از یکبار تکرار شده در دیتاگرید سوم با تعداد تکرار نمایش داده شود.

hosseines
پنج شنبه 14 آبان 1394, 21:53 عصر
دوستان لطفا راهنمایی کنید..

farghabil
پنج شنبه 14 آبان 1394, 22:11 عصر
for(int i=0;i<datagridview1.rows.cou;i++){

for(int j=0;j<datagridview2.rows.cou;j++){
if(datagridview2.rows[j]["sotoone shomare hesab"]==datagridview1.rows[i]["sotoone shomare hesab"].values.tostring()){

add to datagridview3
}
}

}

hosseines
پنج شنبه 14 آبان 1394, 23:08 عصر
من بصورت زیر نوشتم ولی یه مشکل کوچیک داره مثلا اگر ردیفی در گرید دوم سه بار تکرار شده باشه در دیتاگرید سوم نیز سه بار (سه سطر)نمایش داده میشه در صورتی که باید یکبار نمایش داده بشه و فقط تعداد تکرار رو سه بار باشه.

hosseines
پنج شنبه 14 آبان 1394, 23:09 عصر
int counter;

bool IsExist = false;
for (int i = 0; i < GrdList1.RowCount; i++)
{
IsExist = false;
counter = 0;
for (int j = 0; j < GrdList2.RowCount; j++)
{
if (GrdList1.Rows[i].Cells[1].Value.ToString() == GrdList2.Rows[j].Cells[1].Value.ToString())
{
counter++;
IsExist = true;

GrdList1.Rows[i].DefaultCellStyle.BackColor = Color.Yellow;
GrdList2.Rows[j].DefaultCellStyle.BackColor = Color.Yellow;

IdSanad2 = (j+1).ToString();
NumHes2 = GrdList2.Rows[j].Cells[1].Value.ToString();
Mablagh2 = GrdList2.Rows[j].Cells[2].Value.ToString();
}
}
if (IsExist)
{
Gridm.Rows.Add((i + 1), GrdList1.Rows[i].Cells[1].Value, NumHes2, GrdList1.Rows[i].Cells[2].Value, Mablagh2, counter, IdSanad2);

IsExist = false;
}
}