Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > C# การเชค ข้อมูลซ้ำกัน ใน DataGridView ถ้า ซ้ำไห้ Remove ออก



 

C# การเชค ข้อมูลซ้ำกัน ใน DataGridView ถ้า ซ้ำไห้ Remove ออก

 



Topic : 119141



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์




เมื่อผมกดค้นหานะครับ ข้อมูลก็จะมาแสดง พอกดเลือกข้อมูลนะครับ ข้อมูลก็จะไปอีก grid นึง ผมจะเชคยังไง ถ้าข้อมูล grid 1 มีข้อมูลตัวนึง เลือกแล้ว ถ้ามีข้อมูลซ้ำก็จะ remove แถวที่เลือก ถ้าเกิดไม่มี ก็ จะ add ไป อีก grid นึงเหมือนเดิม จะต้องเชคยังไงครับ

remove

อันนี้การแอดเข้าไปครับ

Code (C#)
//if(//ตรงนี้ต้องเชคยังไงครับ)
            //{

            //}


textboxEnable();
            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);
            }

            panelControl1.Visible = false;




Tag : .NET, C#, VS 2012 (.NET 4.x)









ประวัติการแก้ไข
2015-09-29 10:15:08
2015-09-29 10:18:40
2015-09-29 11:19:53
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-09-29 10:13:01 By : phuriwat View : 3952 Reply : 19
 

 

No. 1



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

For ดูครับว่ามีค่าใน datagrid ยัง ก่อน datagrid.rows.add(.........)






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-29 10:18:41 By : lamaka.tor
 


 

No. 2



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ขอโทษครับ งงครับ ไม่เข้าใจ อ่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-29 10:37:46 By : phuriwat
 

 

No. 3



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

Code
For(สำหรับ add rows) { for(check ว่ามี rows ใน datagridview1 นี้ยัง) ถ้ายังค่อยเพิ่ง }

อาจจะทำเปนฟังชันเชคดู rows รีเทิน bool ก้ได้ครับ
โค้ดมีระเบียบดี
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-29 11:22:37 By : lamaka.tor
 


 

No. 4



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


พอจะมีตัวอย่างไหมครับ ขอบคุณครับ


ประวัติการแก้ไข
2015-09-29 11:28:01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-29 11:27:47 By : phuriwat
 


 

No. 5



โพสกระทู้ ( 317 )
บทความ ( 0 )



สถานะออฟไลน์


มี ID ตรวจสอบไหมครับ หรือว่า เอา product_code มาตรวจสอบได้ไหมอะ ถ้าเอามาตราวจสอบทุก column มันช้าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-29 14:10:45 By : Freedom
 


 

No. 6



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


มี ครับ มี id ของตาราง product(ชื่อว่า id) ผมไส่ ไว้ใน grid 2 cell 9 อ่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-29 14:35:08 By : phuriwat
 


 

No. 7



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


อันนี้ที่ผมทำมาครับ ยังไช้ไม่ได้ ยัง 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
 


 

No. 8



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


อันนี้ เกือบ ได้แล้ว อะครับ 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
 


 

No. 9



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

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
 


 

No. 10



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


อันนี้คือยังไม่มีข้อมูล ไม่ไช่หรอครับ ถ้ายังก็แอดเลยครับไม่ต้องเชคอ่าครับ ผมอยากไห้มันเชคตอน ที่มีข้อมูลแล้วอ่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-30 10:13:52 By : phuriwat
 


 

No. 11



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 10 เขียนโดย : phuriwat เมื่อวันที่ 2015-09-30 10:13:52
รายละเอียดของการตอบ ::
ตามหลักการที่ถูกต้องมันควรเป็นแบบนั้นครับ

เช็คว่ามี rows ที่จะเพิ่มไม๊ ถ้าไม่มีจึงเพิ่ง ถ้าไม่มีก็ไป rows ถัดไป

ลองใช้ดูก่อนครับว่าได้ไม๊

อาจจะเพิ่ม โค้ดบ้าน ๆ แบบนี้ครับ

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 10:28:45 By : lamaka.tor
 


 

No. 12



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : lamaka.tor เมื่อวันที่ 2015-09-30 10:28:45
รายละเอียดของการตอบ ::
มันก็ ได้นะครับ แต่ อันนี้คือตอนยังไม่มีข้อมูลเลยนะครับ คือยังไงก็ ไห้แอดอยู่แล้ว จะกี่ตัวก็ ได้ครับ
Code (C#)
 if (dataGridView1.Rows.Count == 0) 

แต่ตอนจะแอดรอบ 2 อะครับคือจะต้อง
Code (C#)
else if (dataGridView1.Rows.Count != 0) 

คือตอนนี้หละครับที่อยากไห้เชคอ่าครับ ว่า ข้อมูล มีแล้วหรือยังครับ ถ้ามี ไห้ remove หรือไม่เพิ่มเข้าไป ถ้าไม่มีไห้เพิ่ม ครับ



ประวัติการแก้ไข
2015-09-30 11:01:34
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-30 10:54:01 By : phuriwat
 


 

No. 13



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 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
 


 

No. 14



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 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
 


 

No. 15



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


เดี๋ยวผมลองดีบัคดูก่อนครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-30 11:49:49 By : phuriwat
 


 

No. 16



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ได้แล้วครับขอบคุณครับ แต่ต้อง เพิ่ม = ลงไป ด้วยครับ แถวสุดท้าย จะ ได้ทำงาน
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. 17



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

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
 


 

No. 18



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 17 เขียนโดย : lamaka.tor เมื่อวันที่ 2015-09-30 13:41:03
รายละเอียดของการตอบ ::
ครับผม ขอบคุณมากครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-30 14:00:24 By : phuriwat
 


 

No. 19



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-30 16:25:00 By : lamaka.tor
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# การเชค ข้อมูลซ้ำกัน ใน DataGridView ถ้า ซ้ำไห้ Remove ออก
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่