2011-12-26 6 views
1

Essayer de sélectionner les champs où la date de fermeture attendue est inférieure à la date actuelle et les supprimer de la table. Cependant obtenir une erreur comme Opérande manquant après l'opérateur 'fermeture'.Datatable Sélectionner la fonction

DateTime Tdy=DateTime.Now; 
var rows = dt.Select("Expected closure date < "+Tdy+""); 
foreach (var row in rows) 
     row.Delete(); 

Répondre

1

C'est ce que vous avez besoin, Testée

var rows = dt.Select(string.Format("[Expected closure date] < '{0}'", Tdy)); 

Voici l'échantillon de travail complet

using System; 
using System.Data; 


namespace ConsoleApplication5 
{ 
    class Program 
    {  

    static void Main(string[] args) 
    { 
     DataTable dt = new DataTable(); 
     string col = "Expected closure date"; 
     dt.Columns.Add(col,typeof(DateTime)); 

     dt.Rows.Add(DateTime.Now.AddDays(-1)); 

     Console.WriteLine("Total rows in dt " + dt.Rows.Count); 

     DateTime Tdy = DateTime.Now; 
     var rows = dt.Select(string.Format("[Expected closure date] <= '{0}'", Tdy)); 
     foreach (var row in rows) 
     row.Delete(); 
     Console.WriteLine("Total rows in dt " + dt.Rows.Count); 

     Console.ReadLine(); 

    } 
    } 
} 

est ici la sortie

Total rows in dt 1 
Total rows in dt 0 
+0

Merci Surjit !! – Jithu

1
DateTime Tdy=DateTime.Now; 
var rows = dt.Select("myDateTimecolumn<'"+DateTime.Now.ToString("yyyyMMdd")+"'"); 
foreach (var row in rows) 
     row.Delete(); 
1

Vous devez envelopper la date dans octothorpes:

dt.Select("myDateTimecolumn < #" + tdy.ToString("MM/dd/yyyy") + "#"); 
+0

Merci :) SLaks – Jithu

Questions connexes