|
|
|
C# การเชค ข้อมูลซ้ำกัน ใน DataGridView ถ้า ซ้ำไห้ Remove ออก |
|
|
|
|
|
|
|
For ดูครับว่ามีค่าใน datagrid ยัง ก่อน datagrid.rows.add(.........)
|
|
|
|
|
Date :
2015-09-29 10:18:41 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษครับ งงครับ ไม่เข้าใจ อ่าครับ
|
|
|
|
|
Date :
2015-09-29 10:37:46 |
By :
phuriwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พอจะมีตัวอย่างไหมครับ ขอบคุณครับ
|
ประวัติการแก้ไข 2015-09-29 11:28:01
|
|
|
|
Date :
2015-09-29 11:27:47 |
By :
phuriwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มี ID ตรวจสอบไหมครับ หรือว่า เอา product_code มาตรวจสอบได้ไหมอะ ถ้าเอามาตราวจสอบทุก column มันช้าครับ
|
|
|
|
|
Date :
2015-09-29 14:10:45 |
By :
Freedom |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มี ครับ มี id ของตาราง product(ชื่อว่า id) ผมไส่ ไว้ใน grid 2 cell 9 อ่าครับ
|
|
|
|
|
Date :
2015-09-29 14:35:08 |
By :
phuriwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้ที่ผมทำมาครับ ยังไช้ไม่ได้ ยัง error อยู่ครับ
Code (C#)
if (dataGridView1.Rows.Count == 0)
{
foreach(DataGridViewRow item in dataGridView2.Rows)
if ((bool)item.Cells[0].Value == true)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = false;
dataGridView1.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
dataGridView1.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
dataGridView1.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
dataGridView1.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
dataGridView1.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
dataGridView1.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
dataGridView1.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
dataGridView1.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();
dataGridView1.Rows[n].Cells[11].Value = item.Cells[9].Value.ToString();
}
}
else if (dataGridView1.Rows.Count != 0)
{
foreach(DataGridViewRow item in dataGridView2.Rows)
if ((bool)item.Cells[0].Value == true)
{
for (int i = 0; i <= dataGridView2.RowCount - 1; i++)
{
if (dataGridView2.Rows[i].Cells[9].Value == dataGridView1.Rows[i].Cells[11].Value)
{
MessageBox.Show(" จะต้อง remove ");
}
}
}
}
|
|
|
|
|
Date :
2015-09-29 15:00:49 |
By :
phuriwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้ เกือบ ได้แล้ว อะครับ Y^Y ช่วยเสริมหน่อย ครับ
Code (C#)
if (dataGridView1.Rows.Count == 0)
{
foreach (DataGridViewRow item in dataGridView2.Rows)
if ((bool)item.Cells[0].Value == true)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = false;
dataGridView1.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
dataGridView1.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
dataGridView1.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
dataGridView1.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
dataGridView1.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
dataGridView1.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
dataGridView1.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
dataGridView1.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();
dataGridView1.Rows[n].Cells[11].Value = item.Cells[9].Value.ToString();
}
removegrid2();
}
else if (dataGridView1.Rows.Count != 0)
{
//foreach (DataGridViewRow item in dataGridView2.Rows)
// if ((bool)item.Cells[0].Value == true)
// {
for (int i = 0; i < dataGridView2.Rows.Count; i++)
{
int j = Int32.Parse(dataGridView1.Rows[i].Cells[11].Value.ToString());
int k = Int32.Parse(dataGridView2.Rows[i].Cells[9].Value.ToString());
if (j == k)//ถ้าซ้ำ
{
removegrid2();// อันนี้เมททอด removeครับ
}
else if(j != k)//ถ้าไม่ซ้ำ
{
foreach (DataGridViewRow item in dataGridView2.Rows)
if ((bool)item.Cells[0].Value == true)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = false;
dataGridView1.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
dataGridView1.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
dataGridView1.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
dataGridView1.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
dataGridView1.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
dataGridView1.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
dataGridView1.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
dataGridView1.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();
dataGridView1.Rows[n].Cells[11].Value = item.Cells[9].Value.ToString();
}
removegrid2();
}
}
}
|
ประวัติการแก้ไข 2015-09-29 16:59:17 2015-09-29 17:00:28
|
|
|
|
Date :
2015-09-29 16:58:27 |
By :
phuriwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
if (dataGridView1.Rows.Count == 0)
{
for (int rows_2 = 0; rows_2 < dataGridView2.RowCount - 1; rows_2++)
{
if ((bool)dataGridView2[0, rows_2].Value == true)
{
//เช็คก่อนว่าไม่มี rows ค่อย Add
if (CheckHaveRows(dataGridView2[0, rows_2].Value.ToString()) == false)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = false;
dataGridView1.Rows[n].Cells[1].Value = dataGridView2[1, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[2].Value = dataGridView2[2, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[3].Value = dataGridView2[3, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[4].Value = dataGridView2[4, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[5].Value = dataGridView2[5, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[6].Value = dataGridView2[6, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[7].Value = dataGridView2[7, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[8].Value = dataGridView2[8, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[11].Value = dataGridView2[9, rows_2].Value.ToString();
}
else
{
MessageBox.Show(" จะต้อง remove ");
}
}
}
//CheckHaveRows
Code (C#)
bool CheckHaveRows(string value)
{
bool chk = true;
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
if (dataGridView1.Rows[i].Cells[11].Value.ToString() == value)
{
return chk;
}
}
chk = false;
return chk;
}
|
|
|
|
|
Date :
2015-09-30 07:44:55 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้คือยังไม่มีข้อมูล ไม่ไช่หรอครับ ถ้ายังก็แอดเลยครับไม่ต้องเชคอ่าครับ ผมอยากไห้มันเชคตอน ที่มีข้อมูลแล้วอ่าครับ
|
|
|
|
|
Date :
2015-09-30 10:13:52 |
By :
phuriwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 12 เขียนโดย : phuriwat เมื่อวันที่ 2015-09-30 10:54:01
รายละเอียดของการตอบ ::
ขอดูโค๊ดหน่อยครับ
ขอแก้โค้ดบ้านๆ นะครับ
เปลี่ยนจาก
if (CheckHaveRows(dataGridView2[0, rows_2].Value.ToString()) == false)
เป็น
if (CheckHaveRows(dataGridView2[9, rows_2].Value.ToString()) == false)
Code (C#)
for (int rows_2 = 0; rows_2 < dataGridView2.RowCount - 1; rows_2++)
{
if ((bool)dataGridView2[0, rows_2].Value == true)
{
//เช็คก่อนว่าไม่มี rows ค่อย Add
if (CheckHaveRows(dataGridView2[9, rows_2].Value.ToString()) == false)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = false;
dataGridView1.Rows[n].Cells[1].Value = dataGridView2[1, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[2].Value = dataGridView2[2, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[3].Value = dataGridView2[3, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[4].Value = dataGridView2[4, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[5].Value = dataGridView2[5, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[6].Value = dataGridView2[6, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[7].Value = dataGridView2[7, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[8].Value = dataGridView2[8, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[11].Value = dataGridView2[9, rows_2].Value.ToString();
}
else
{
MessageBox.Show(" จะต้อง remove ");
}
}
if (CheckHaveRows(dataGridView2[9, rows_2].Value.ToString()) == false)
เช็คว่ามีค่า dataGridView2[9, rows_2].Value ใน dataGridView1 หรือไม่
ถ้าไม่มี (== false) ค่อย Add
int n = dataGridView1.Rows.Add();
ถ้ามี
MessageBox.Show(" จะต้อง remove ");
โค้ดน่าจะมีแค่นั้น
ไม่ทราบว่าตรงตามวัตถุประสงค์ไม๊ครับ
ยังไงก็ลองเอาโค้ดใหม่นี่ไปลองดูครับ
|
|
|
|
|
Date :
2015-09-30 11:26:48 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 13 เขียนโดย : lamaka.tor เมื่อวันที่ 2015-09-30 11:26:48
รายละเอียดของการตอบ ::
ตอนนี้มีเท่านี้ครับ
Code (C#)
if (dataGridView1.Rows.Count == 0)
{
foreach (DataGridViewRow item in dataGridView2.Rows)
if ((bool)item.Cells[0].Value == true)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = false;
dataGridView1.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
dataGridView1.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
dataGridView1.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
dataGridView1.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
dataGridView1.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
dataGridView1.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
dataGridView1.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
dataGridView1.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();
dataGridView1.Rows[n].Cells[11].Value = item.Cells[9].Value.ToString();
}
List<DataGridViewRow> toDelete = new List<DataGridViewRow>();
foreach (DataGridViewRow row in dataGridView2.Rows)
{
bool s = Convert.ToBoolean(row.Cells[0].Value);
if (s == true)
{
toDelete.Add(row);
}
}
foreach (DataGridViewRow row in toDelete)
{
dataGridView2.Rows.Remove(row);
}
}
else if (dataGridView1.Rows.Count != 0)
{
for (int rows_2 = 0; rows_2 < dataGridView2.RowCount - 1; rows_2++)
{
if ((bool)dataGridView2[0, rows_2].Value == true)
{
//เช็คก่อนว่าไม่มี rows ค่อย Add
if (CheckHaveRows(dataGridView2[9, rows_2].Value.ToString()) == false)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = false;
dataGridView1.Rows[n].Cells[1].Value = dataGridView2[1, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[2].Value = dataGridView2[2, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[3].Value = dataGridView2[3, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[4].Value = dataGridView2[4, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[5].Value = dataGridView2[5, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[6].Value = dataGridView2[6, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[7].Value = dataGridView2[7, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[8].Value = dataGridView2[8, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[11].Value = dataGridView2[9, rows_2].Value.ToString();
}
else
{
MessageBox.Show(" จะต้อง remove ");
}
}
}
}
Code (C#)
[cs]bool CheckHaveRows(string value)
{
bool chk = true;
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
if (dataGridView1.Rows[i].Cells[11].Value.ToString() == value)
{
return chk;
}
}
chk = false;
return chk;
}
|
ประวัติการแก้ไข 2015-09-30 11:41:21
|
|
|
|
Date :
2015-09-30 11:39:37 |
By :
phuriwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เดี๋ยวผมลองดีบัคดูก่อนครับ
|
|
|
|
|
Date :
2015-09-30 11:49:49 |
By :
phuriwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับขอบคุณครับ แต่ต้อง เพิ่ม = ลงไป ด้วยครับ แถวสุดท้าย จะ ได้ทำงาน
Code (C#)
for (int rows_2 = 0; rows_2 <= dataGridView2.RowCount - 1; rows_2++) // บรรทัดนี้อ่าครับ
กับ
Code (C#)
for (int i = 0; i <= dataGridView1.RowCount - 1; i++)
อันนี้ที่ได้นะครับ
มี
Code (C#)
if (dataGridView1.Rows.Count == 0)
{
foreach (DataGridViewRow item in dataGridView2.Rows)
if ((bool)item.Cells[0].Value == true)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = false;
dataGridView1.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString();
dataGridView1.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString();
dataGridView1.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString();
dataGridView1.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString();
dataGridView1.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString();
dataGridView1.Rows[n].Cells[6].Value = item.Cells[6].Value.ToString();
dataGridView1.Rows[n].Cells[7].Value = item.Cells[7].Value.ToString();
dataGridView1.Rows[n].Cells[8].Value = item.Cells[8].Value.ToString();
dataGridView1.Rows[n].Cells[11].Value = item.Cells[9].Value.ToString();
}
removegrid2();
}
else if (dataGridView1.Rows.Count != 0)
{
for (int rows_2 = 0; rows_2 <= dataGridView2.RowCount - 1; rows_2++)
{
if ((bool)dataGridView2[0, rows_2].Value == true)
{
//เช็คก่อนว่าไม่มี rows ค่อย Add
if (CheckHaveRows(dataGridView2[9, rows_2].Value.ToString()) == false)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = false;
dataGridView1.Rows[n].Cells[1].Value = dataGridView2[1, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[2].Value = dataGridView2[2, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[3].Value = dataGridView2[3, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[4].Value = dataGridView2[4, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[5].Value = dataGridView2[5, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[6].Value = dataGridView2[6, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[7].Value = dataGridView2[7, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[8].Value = dataGridView2[8, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[11].Value = dataGridView2[9, rows_2].Value.ToString();
removegrid2();
}
else
{
MessageBox.Show(" จะต้อง remove ");
}
}
}
}
Code (C#)
bool CheckHaveRows(string value)
{
bool chk = true;
for (int i = 0; i <= dataGridView1.RowCount - 1; i++)
{
if (dataGridView1.Rows[i].Cells[11].Value.ToString() == value)
{
return chk;
}
}
chk = false;
return chk;
}
Code (C#)
private void removegrid2()
{
List<DataGridViewRow> toDelete = new List<DataGridViewRow>();
foreach (DataGridViewRow row in dataGridView2.Rows)
{
bool s = Convert.ToBoolean(row.Cells[0].Value);
if (s == true)
{
toDelete.Add(row);
}
}
foreach (DataGridViewRow row in toDelete)
{
dataGridView2.Rows.Remove(row);
}
}
ขอบคุณมากเลยครับที่ช่วย Y^Y
|
ประวัติการแก้ไข 2015-09-30 12:22:51
|
|
|
|
Date :
2015-09-30 12:22:01 |
By :
phuriwat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
No. 16 มันซ้ำซ้อนครับ
ใช้แค่
Code (C#)
for (int rows_2 = 0; rows_2 < dataGridView2.RowCount - 1; rows_2++)
{
if ((bool)dataGridView2[0, rows_2].Value == true)
{
//เช็คก่อนว่าไม่มี rows ค่อย Add
if (CheckHaveRows(dataGridView2[9, rows_2].Value.ToString()) == false)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = false;
dataGridView1.Rows[n].Cells[1].Value = dataGridView2[1, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[2].Value = dataGridView2[2, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[3].Value = dataGridView2[3, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[4].Value = dataGridView2[4, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[5].Value = dataGridView2[5, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[6].Value = dataGridView2[6, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[7].Value = dataGridView2[7, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[8].Value = dataGridView2[8, rows_2].Value.ToString();
dataGridView1.Rows[n].Cells[11].Value = dataGridView2[9, rows_2].Value.ToString();
}
else
{
MessageBox.Show(" จะต้อง remove ");
}
}
กับ
Code (C#)
bool CheckHaveRows(string value)
{
bool chk = true;
//ถ้า dataGridView1.RowCount - 1 < 1 ให้ส่งค่า true ออกไป
if(dataGridView1.RowCount - 1 < 1) {return chk;}
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
if (dataGridView1.Rows[i].Cells[11].Value.ToString() == value)
{
return chk;
}
}
chk = false;
return chk;
}
แค่นี้ก็ครบตามที่ต้องการแล้วครับ
แต่ไม่ได้บอกว่าโค้ดที่ทำอยู่หรือถูก
แค่เป็นเรื่องการจัดการครับ
|
|
|
|
|
Date :
2015-09-30 13:41:03 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2015-09-30 16:25:00 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|