유용한 정보

[C#] DataGridView 의 데이터 검색하기

DevReff 2025. 4. 16. 05:08
728x90
728x90
SMALL

/// <summary>
/// DataGridView 컨트롤에서 데이터를 검색한다.
/// 검색하려는 데이터의 개수와 인덱스의 개수는 같아야 한다.
/// </summary>
/// <param name="dgv">DataGridView 컨트롤</param>
/// <param name="values">검색하려는 데이터</param>
/// <param name="columns">검색하려는 열의 인덱스</param>
/// <param name="startindex">검색 시작 행의 인덱스</param>
/// <returns>검색된 데이터</returns>
List<DataGridViewRow> FindDataGridView(DataGridView dgv, IEnumerable<string> values, IEnumerable<int> columns, int startindex = 0)
{
List<DataGridViewRow> results = new List<DataGridViewRow>();

if (dgv == null || dgv.RowCount < 1
|| values == null || values.Count() < 1
|| columns == null || columns.Count() < 1
|| values.Count() != columns.Count())
return results;

try
{
int cnt = values.Count();
int idx = 0;
foreach (DataGridViewRow row in dgv.Rows)
{
if (idx < startindex)
continue;

bool equal = true;
for (int i = 0; i < cnt; ++i)
{
int col = columns.ElementAt(i);
string value = values.ElementAt(i);
if (row.Cells[col].Value == null || row.Cells[col].Value.ToString() != value)
{
equal = false;
break;
}
}

if (equal)
results.Add(row);

++idx;
}
}
catch (Exception ex)
{
KLog.Write(ex.ToString());

}
return results;
}

728x90
728x90
LIST