2013-06-26 4 views
1

Je suis confronté à un petit problème dans dataview rowfilter. Comment gérer la valeur vide de la zone de texte dans dataview rowfilter.i utilise l'opérateur OU dans ce filtre. S'il vous plaît aidez-moi Guide dans ce numéro. Jusqu'à présent, j'utilise le code ci-dessous.DataView RowFillter comme opérateur

Column1 = string.IsNullOrEmpty(txtColumn1.Text) ? "" : "%" + txtColumn1.Text + "%"; 
Column2 = string.IsNullOrEmpty(txtColumn2.Text) ? "" : "%" + txtColumn2.Text + "%"; 
Column3 = string.IsNullOrEmpty(txtColumn3.Text) ? "" : "%" + txtColumn3.Text + "%"; 

dataView.RowFilter = @"Column1 like '" + Column1 + "'" + "OR Column2 like '" + Column2 + "'" + "OR Column3 like '" + Column3 + "'"; 

Répondre

5

L'extrait de code ci-dessous vous aidera à contrôler le filtrage avec des valeurs vides. Plase essayer de marquer la réponse si utile

StringBuilder filter = new StringBuilder(); 
if (!(string.IsNullOrEmpty(textBox1.Text))) 
    filter.Append("Column1 Like '%" + textBox1.Text + "%'"); 

if (!(string.IsNullOrEmpty(textBox2.Text))) 
{ 
    if (filter.Length > 0) filter.Append(" OR "); 
    filter.Append("Column2 Like '%" + textBox2.Text + "%'"); 
} 

if (!(string.IsNullOrEmpty(textBox3.Text))) 
{ 
    if (filter.Length > 0) filter.Append(" OR "); 
    filter.Append("Column3 Like '%" + textBox3.Text + "%'"); 
} 

DataView dv = dt.DefaultView; 
dv.RowFilter = filter.ToString(); 
+0

j'ai essayé votre code.but si je ne donne pas la valeur textbox1 il lancer exception comme « Erreur de syntaxe:. Opérande manquant avant l'opérateur" Ou ».} Comment gérer cette situation? si je donne de la valeur à textbox3 seulement – Dillibabu

+0

Dillibabu, S'il vous plaît voir ma réponse à jour. Cela fonctionne .. Veuillez marquer la réponse si utile –