<Form1.cs>
//생략
private void Main_searchTextBox_KeyUp(object sender, KeyEventArgs e) //검색 기능 구현 할 textbox keyup이벤트
{
Thread.Sleep(40);
commonfunction.Main_SearchTextBox(Main_searchTextBox.Text);
}
<CommonFunction.cs>
String MainSearchResult;
#region //Main.cs의 검색기능 메소드
/// <summary>
/// 검색텍스트박스 keypressEvent를 받아와 처리해 주는 메소드
/// </summary>
/// <param name="TextBoxInputValue"> KeypressEvent로 textbox에 입력된 값 </param>
public void Main_SearchTextBox(String TextBoxInputValue)
{
DataTable form1DT_copy = form1.dt; // form1의 datatable form1DT_copy에 복사
MainSearchResult = TextBoxInputValue;
IEnumerable<DataRow> linq_row = null;
DataTable form1DT_re = new DataTable();
form1DT_re = form1DT_copy.Clone();
if (MainSearchResult == "")
{
form1._dgv.DataSource = form1DT_copy;
}
else
{
//MainSearchResult가 ""이 아니면 일치하는 데이터 찾는 코드
foreach (DataRow row in form1DT_copy.Rows)
{
linq_row = from item in row.ItemArray
where item.ToString().ToLower().Equals(MainSearchResult.ToLower())
select row;
//입력된 값이 완전히 일치하는지 확인
foreach (DataRow dt in linq_row)
{
form1DT_re.Rows.Add(dt.ItemArray);
}
//linq 결과를 datatable에 넣어주는 작업
}
//입력된 값이 부분적으로 일치하는 경우
if(form1DT_re.Rows.Count== 0)
{
foreach (DataRow row in form1DT_copy.Rows)
{
linq_row = from item in row.ItemArray
where item.ToString().ToLower().Contains(MainSearchResult.ToLower())
select row;
//입력된 값이 부분적으로 일치하는지 확인
foreach (DataRow dt in linq_row)
{
form1DT_re.Rows.Add(dt.ItemArray);
}
}
}
form1DT_re = form1DT_re.DefaultView.ToTable(true);
form1._dgv.DataSource = form1DT_re;
}
}
#endregion
'Language > C#' 카테고리의 다른 글
[c#]treelistview 노드코드 (0) | 2020.02.03 |
---|---|
[C#] Datagridview 마지막 빈 행 지우기 (1) | 2020.01.31 |
[C#] textbox keypress 이벤트 (0) | 2020.01.30 |
[C#] LINQ 연습 1일 (0) | 2020.01.30 |
[C#] DataTable max값을 포함한 row 조회 (0) | 2020.01.21 |