私のコードは以下の通りです。strFilterTextに値があり、文字列が空であればコードは正しくありませんたとえば、strFilterTextに "shoes"が含まれている場合、データグリッドには "shoes"を含むすべての行が表示されますが、カテゴリがない行、つまりcatergoryがNULLでstrFilterTextに " ""でカテゴリー内のすべてを返すようにしたいのですが、下のコードは、strFilterTextが ""の場合、カテゴリのすべてを私に示しています。C#LIKEを使用してセル値がNULLでないデータグリッドからローを削除する
ありがとうございました。
strFilterText += " LIKE '%" + txtboxValue.Text + "%'";
performFilter(strFilterText);
}
private void performFilter(string strFilterText)
{
DataTable table = dataGridView1.DataSource as DataTable;
if (table != null)
{
List<DataRow> filteredRows = new List<DataRow>(table.Select(strFilterText));
CurrencyManager cm = (CurrencyManager)BindingContext[dataGridView1.DataSource];
cm.SuspendBinding();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.Visible = filteredRows.Contains(((DataRowView)row.DataBoundItem).Row);
}
cm.ResumeBinding();
}
}
これに行ってしまったのですが、フィールドに真のヌル値ではなく空の文字列が含まれているように聞こえました。 –
ええ、それは本当に明確ではない値はnullまたは ""です。私は彼が今でも管理すると確信しています。 – Grzenio
両方の回答はうまくいきましたが、これは私が同行したものです.Granzenioに感謝します! –