J'ai une question sur Le nom de la colonne est voici mon datatable code>. Je récupère un
dataTable code> dans la base de données et l'une de ces colonnes contient un 1 ou un 0. Je veux maintenant récupérer uniquement les lignes avec une valeur 1 de 1 dans cette colonne.
activer code>. p>
datatable code>: p>
4 Réponses :
Vous utilisez simplement DataTable.select comme ceci:
foundRows = table.Select("ACTIVATE = '1'");
DataTable results = table.Select("ACTIVATE = 1").CopyToDataTable(); That should achieve what you want, basically you can query data tables much like SQL.
via SQL (préféré) via En dehors de cela, vous n'avez pas besoin linq-to -atable code> (en mémoire): p>
DataTable .Sélectionnez code>
: p> SelectCommand.executerAreader () code> pour remplir le Tableau. P>
DataTable table = new Datatable();
using(var con = new SqlConnection(connectionString))
using(var cmd = new SqlCommand("SELECT * FROM dbo.Table WHERE ACTIVATE = 1", con))
using(var da = new SqlDataAdapter(cmd))
{
da.Fill( table );
}
Ajoutez un filtre DataTable.Select (), et cette réponse serait terminée. :)
@ Samys.rathore: pourquoi? LINQ est beaucoup plus puissant et les méthodes CODE> TYPE> STRY TYPED CODE> supportant également les nullables sont le meilleur choix (si disponible). Edit: Cependant, vous avez raison. Édité ma réponse en conséquence.
+1 Le point de vue cela, je viens de dire que pour couvrir toutes les options d'une seule réponse.
Datatable.select est lent comme l'enfer, surtout avec un nombre plus important d'enregistrements
@Antoniobakula n'a pas su que ... Thanxx, j'ai appris quelque chose de nouveau aujourd'hui .. !! Cette réponse doit être acceptée alors.
copytodatatable () code> m'a sauvé.
return table; DataTable results = table.Select("ACTIVATE = 1").CopyToDataTable();
N'utilisez-vous pas une requête pour remplir le datatable ?? Utilisez un problème dans cette requête
Faites la logique dans la requête, passez à NULL pour le retourner avec un paramètre où (@Filter est NULL ou Activate = @Filter)