2010-06-28 6 views
1

J'ai mes chaînes dans un tableau String, mes données dans un datatable.Problème avec la méthode DataTable.Select

Ce que je dois faire est de sélectionner une seule ligne en utilisant la méthode datatable.select (string) et de la supprimer du datatable.

C'est ce que je suis en train de faire, et ça fonctionne bien plusieurs fois mais c'est renvoyer une erreur si je change le tableau fréquemment. J'ai vérifié les datarows dans le datatable et aussi la chaîne correspondante. ils sont là comme ils sont censés être. Mais parfois, il renvoie toujours null. Mais quand je checkback, les données sont exactement comme je le veux.

   for (int k = 0; k < p; k++) 
       { 
        string tempMapString = "ID =" + IDArray[k]; 
        try 
        { 
         DataRow[] rows = myTable_2_ForCBL.Select(tempMapString); 

         //MessageBox.Show(IDArray[k].ToString(), "ID Array Element"); 
         MessageBox.Show(tempMapString + " " + rows.Length.ToString(), "No of Rows mapped are:"); 



         if (rows.Length > 0) 
         { 
          foreach (DataRow row in rows) 
          { 
           row.Delete(); 
          } 
         } 
        } 
        catch (Exception err2) 
        { 
         MessageBox.Show(err2.Message); 
        } 

       } 

Faites-moi savoir s'il me manque quelque chose. Les colonnes du datatable sont "ID" et "LocationName". ID est comme la clé primaire et est le membre de la liste des cases à cocher.

+0

Quelle exception obtenez-vous? – Thea

Répondre

3

J'ai eu la réponse. C'est un BUG Stupide que Microsoft a ignoré dans leur documentation.

vous devez mettre des guillemets simples (') pour la chaîne. donc la ligne serait

DataTable1.Select("ID= '"+tempstring+"'");

+1

La documentation de 'Select' dit" utiliser les mêmes règles que celles qui s'appliquent à la propriété Expression de la classe DataColumn ". La documentation de 'Expression' dit:« Lorsque vous créez une expression pour un filtre, entourez les chaînes de guillemets simples: '" LastName = 'Jones' "' " – Lee

Questions connexes