Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: tìm kiếm giá trị giống nhau trong datagridview như thế nào

  1. #1
    Ngày gia nhập
    07 2010
    Bài viết
    115

    Mặc định tìm kiếm giá trị giống nhau trong datagridview như thế nào

    Visual C# Code:
    1. private bool Find(string strSearch)
    2.         {
    3.             dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    4.             int i = 0;
    5.             foreach(DataGridViewRow row in dataGridView1.Rows)
    6.             {
    7.                 if (dataGridView1.Rows[i].Cells[0].Value.ToString() == strSearch)
    8.                 {
    9.                     //dataGridView1.Rows[i].Selected = true;
    10.                     dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
    11.                     return true;
    12.                 }
    13.                 i += 1;
    14.             }
    15.             return false;
    16.         }
    mình viết hàm này để tìm những mã giống nhau nhưng chỉ tìm được giá trị đầu tiên, test thử mấy giá trị giống nhau mà cũng vẫn vậy.
    a e chỉ mình với

  2. #2
    Ngày gia nhập
    11 2011
    Bài viết
    13

    Bạn khai báo phần tử là row trong vòng lặp foreach mà bạn lại truyền biến [i] vô thì làm sao đc, bạn phải truyền row vào mới đúng chứ

  3. #3
    Ngày gia nhập
    11 2012
    Nơi ở
    Ở nhà
    Bài viết
    180

    Trích dẫn Nguyên bản được gửi bởi lonelyeveningstar Xem bài viết
    Visual C# Code:
    1. private bool Find(string strSearch)
    2.         {
    3.             dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    4.             int i = 0;
    5.             foreach(DataGridViewRow row in dataGridView1.Rows)
    6.             {
    7.                 if (dataGridView1.Rows[i].Cells[0].Value.ToString() == strSearch)
    8.                 {
    9.                     //dataGridView1.Rows[i].Selected = true;
    10.                     dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
    11.                     return true;
    12.                 }
    13.                 i += 1;
    14.             }
    15.             return false;
    16.         }
    mình viết hàm này để tìm những mã giống nhau nhưng chỉ tìm được giá trị đầu tiên, test thử mấy giá trị giống nhau mà cũng vẫn vậy.
    a e chỉ mình với
    Mình chưa hiểu lắm nhưng mình góp ý thế này có gì các pro bỏ qua nhá.
    Code:
    private bool Find(string strSearch)
            {
                dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
               // int i = 0;
                foreach(DataGridViewRow row in dataGridView1.Rows)
                {
                    if (dataGridView1.Rows[row].Cells[0].Value.ToString() == strSearch)
                    {
                        //dataGridView1.Rows[row].Selected = true;
                        dataGridView1.Rows[row].DefaultCellStyle.BackColor = Color.Red;
                        return true;
    // Khi tìm thấy rồi thì dừng vòng lặp lại
    break;
                    }
                    //i += 1;
                }
                return false;
            }

  4. #4
    Ngày gia nhập
    07 2010
    Bài viết
    115

    bộ khai báo như thế này dc sao ta ????, Rows chỉ nhận giá trị int mà ta
    Visual C# Code:
    1. dataGridView1.Rows[row].Cells[0].Value.ToString() == strSearch

  5. #5
    Ngày gia nhập
    09 2011
    Bài viết
    26

    Trích dẫn Nguyên bản được gửi bởi lonelyeveningstar Xem bài viết
    Visual C# Code:
    1. private bool Find(string strSearch)
    2.         {
    3.             dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    4.             int i = 0;
    5.             foreach(DataGridViewRow row in dataGridView1.Rows)
    6.             {
    7.                 if (dataGridView1.Rows[i].Cells[0].Value.ToString() == strSearch)
    8.                 {
    9.                     //dataGridView1.Rows[i].Selected = true;
    10.                     dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
    11.                     return true;
    12.                 }
    13.                 i += 1;
    14.             }
    15.             return false;
    16.         }
    mình viết hàm này để tìm những mã giống nhau nhưng chỉ tìm được giá trị đầu tiên, test thử mấy giá trị giống nhau mà cũng vẫn vậy.
    a e chỉ mình với
    Bạn bị vậy là đúng rồi vì i bạn gán cứng = 0. Rows[0].Cells[0] là lấy giá trị ô thứ 0 của dòng thứ 0 mà.

  6. #6
    Ngày gia nhập
    08 2010
    Nơi ở
    mô cụng là nhà
    Bài viết
    11

    Mặc định tìm kiếm giá trị giống nhau trong datagridview như thế nào

    Bạn thử cái này xem nhé !

    for (int i = 0; i < dataGridView1.RowCount - 1; i++)
    {
    DataGridViewRow row = dataGridView1.Rows[i];
    string str = dataGridView1.Rows[i].Cells[0].Value.ToString();
    if( str.ToString()== strSeach)
    {
    ........................
    }
    }


    Còn cái Cell[...] : ở đây bạn muốn chạy cột nào thì điền số cột vào đấy.

  7. #7
    Ngày gia nhập
    11 2012
    Bài viết
    1

    Trích dẫn Nguyên bản được gửi bởi lonelyeveningstar Xem bài viết
    Visual C# Code:
    1. private bool Find(string strSearch)
    2.         {
    3.             dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    4.             int i = 0;
    5.             foreach(DataGridViewRow row in dataGridView1.Rows)
    6.             {
    7.                 if (dataGridView1.Rows[i].Cells[0].Value.ToString() == strSearch)
    8.                 {
    9.                     //dataGridView1.Rows[i].Selected = true;
    10.                     dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
    11.                     return true;
    12.                 }
    13.                 i += 1;
    14.             }
    15.             return false;
    16.         }
    mình viết hàm này để tìm những mã giống nhau nhưng chỉ tìm được giá trị đầu tiên, test thử mấy giá trị giống nhau mà cũng vẫn vậy.
    a e chỉ mình với
    Uhm, nếu mình nhớ không nhầm thi khi dùng foreach thì phải dùng như thế này chứ
    Code:
    int i = 0;
    foreach(DataGridViewRow row in dataGridView1.Rows)
                {
                    if (row.Cells[i].Value.ToString() == strSearch)
                    {
                        row.DefaultCellStyle.BackColor = Color.Red;
                        return true;
                    }
                    i += 1;
                }

Các đề tài tương tự

  1. ADO.NET Cách tìm kiếm trực tiếp trên datagridview nhu thế nào ?
    Gửi bởi lonelyeveningstar trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 22-04-2012, 07:32 PM
  2. Gộp 2 dòng giống nhau trong datagridview C#?
    Gửi bởi virgo_x trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 17-04-2012, 09:45 PM
  3. Trả lời: 1
    Bài viết cuối: 03-04-2012, 01:05 PM
  4. Database Loại bỏ những dữ liệu giống nhau trong một datagridview
    Gửi bởi toanhoi trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 22-02-2011, 01:02 PM
  5. dữ liệu hiển thị trùng nhau trong datagridview
    Gửi bởi nh0cbilly trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 10-12-2010, 10:14 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn