2009-06-09 10 views
0

Ich möchte Zellen in der Spalte strSearchFilter finden, die einen Wert (einen beliebigen Wert) enthalten und die Zeilen ausblenden, die keinen Wert haben (d. H. NULL). Mein Code unten gibt alle Zeilen zurück, die NULL in der StrSearchFilter-Spalte entgegengesetzt zu dem was ich möchte.C# datagrid Zelle ist nicht NULL

Dank

strSearchFilter += string.IsNullOrEmpty(txtFilterValue.Text) ? " IS NULL" : " NOT LIKE '%" + txtFilterValue.Text + "%'"; 
    } 

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(); 
     } 
} 

Danke für die Hilfe.

+0

Ihre Frage ist unklar. – SLaks

+0

Hoffentlich klarer jetzt. Vielen Dank –

Antwort

0

Sie müssen Folgendes schreiben:

strSearchFilter += string.IsNullOrEmpty(txtFilterValue.Text) ? " IS NOT NULL" : " NOT LIKE '%" + txtFilterValue.Text + "%'"; 
1

Ich schlage vor, mit der Spalte, die Sie möchten, dass Ihre Filter verwenden, einfache SQL-Syntax anwenden wie:

MyColumn IS NOT NULL AND MyColumn <> '' 

Ist das, was Sie‘ suchend?