C#/winform

[DATATABLE]SELECT로 ROW 인덱스 구하기(feat.DataGridView)

ㅋㅋ! 2021. 2. 28. 17:49
테스트에 사용된 데이터그리드뷰 와 데이터


 private void button1_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();  // 데이터테이블 선언
            string keyword = textBox1.Text; // 인덱스를 찾을 이름
            dt = ConvertDGVToDataTable(dataGridView1); //DataGridView 데이터를 DataTable로 변환하는 함수


			//SELECT 문을 이용하여 찾은 Row값을 dr에 할당
            DataRow[] dr= dt.Select($"column1 = '{keyword}'"); 

			//dr값을 전부 반복하면서, 인덱스 값을 표시
            for (int i = 0; i < dr.Length; i++)
            {
                int indexRow = dt.Rows.IndexOf(dr[i]);
                MessageBox.Show($"{keyword}의 Row 인덱스 값은 {indexRow.ToString()}입니다.");
            }
            

        } 
결과

 


위 내용을 응용하여 데이터 그리드뷰에 특정값에 강조 표시를 해보자.

 

  private void button2_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            string keyword = textBox1.Text;
            dt = ConvertDGVToDataTable(dataGridView1);

            DataRow[] dr = dt.Select($"column1 = '{keyword}'");

            for (int i = 0; i < dr.Length; i++)
            {
                int indexRow = dt.Rows.IndexOf(dr[i]);
                dataGridView1.Rows[indexRow].DefaultCellStyle.BackColor = Color.Yellow;

            }
        }
결과