我正在使用的代碼
(DataGridViewAllMusic.DataSource as DataTable).DefaultView.RowFilter =
string.Format("Title LIKE '%{0}%' or Artist LIKE '%{1}%' or Album LIKE '%{2}%' or
Comments LIKE '%{3}%' ",TextboxSearch.Text, TextboxSearch.Text, TextboxSearch.Text,
TextboxSearch.Text);
作業輸出:
假設 datagridview 將歌曲資訊顯示為(左側的 SongTitle 和右側的 Artist)
標題和藝術家
溫柔的生活 和 三個學位
我在 TextboxSearch 中輸入Life,datagridview 將顯示歌曲詳細資訊,因為在 DataTable 列標題中找到了Life一詞
現在,如果我搜索Degree,在 DataTable 列Artist中再次找到 Degree ,因此 datagridview 將顯示相同的結果
所需過濾器:
現在我也想以藝術家和歌曲名稱的方式一起搜索歌曲。
這樣,如果我在 TextboxSearch 中搜索它,那么 三度的溫柔生活,datagridview 也應該顯示與分別搜索標題或藝術家時顯示的結果相同的結果
uj5u.com熱心網友回復:
特別感謝 @dr.null 。我找到了他的 vb.net 代碼并在 c# 中使用。效果很好!
vb.net by dr.null
var sb = new StringBuilder();
var cols = new[] { "Title", "Artist" };
var words = TextboxSearch.Text.Split(',').Where(x => x.Trim().Length > 0);
for (var i = 0; i <= cols.Length - 1; i )
{
for (var j = 0; j <= words.Count() - 1; j )
{
sb.Append($"{cols[i].Trim()} LIKE '
{words.ElementAt(j).Trim()}%'");
if (j != words.Count() - 1)
sb.Append(" OR ");
}
if (i != cols.Length - 1)
sb.Append(" OR ");
}
(DataGridViewAllMusicDark.DataSource as DataTable).DefaultView.RowFilter =
sb.ToString();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/475057.html
下一篇:關閉表單時如何關閉整個應用程式?
