2017-06-06 3 views
0

actuellement lorsque les dossiers sont nuls je reçois l'erreur la source cantain aucune ligne de données pour gérer que je l'ai vérifié nombre> 0 mais toujours je suis avoir une idée de comment résoudre cela.la source cantain aucune ligne de données lors de l'utilisation prendre asp.net

dynamic dt = ds.Tables(0); 
int totalrowCount = dt.Rows.Count; 


//dt.Rows.Count 
//dt.Select().Take(100) 
// dt.Rows.Cast(Of System.Data.DataRow)().Take(100) 
DataTable dt1 = default(DataTable); 
if (totalrowCount > 0) { 
    dt1 = dt.AsEnumerable().Take(100).CopyToDataTable(); 
} else { 
    dt1 = dt.AsEnumerable().CopyToDataTable(); 
} 
+0

Il est pas clair ce que vous attendez le chèque à faire - s'il n'y a pas de lignes, puis 'dt.AsEnumerable() Prenez (100)' retournerait la même séquence que 'dt. .AsEnumerable() '. Cela n'aide pas que nous ne sachions pas * où * vous obtenez une erreur. Si c'est dans un dernier morceau de code qui nécessite un 'DataTable' non vide, alors vous devez vraiment réfléchir plus attentivement à ce que vous voulez faire quand il n'y a * * pas * de lignes. –

+0

dans l'autre partie je reçois l'erreur. –

+0

@Zbidi Je reçois erreur dans la partie –

Répondre

0

Comme documented, CopyToDataTable() ne peut pas être appelé sur une séquence vide de lignes - sans doute parce qu'il n'y a pas d'informations de schéma à inclure. Au lieu de cela, si vous savez que votre table d'origine est vide et que vous voulez une nouvelle table avec le même schéma, il suffit de la cloner. Donc, vous auriez:

DataTable dt = ds.Tables(0); 
DataTable newTable = dt.Rows.Count > 0 
    ? dt.AsEnumerable().Take(100).CopyToDataTable() 
    : dt.Clone(); 
-1

Vérifiez le nombre de lignes avec ce qui suit;

if (ds.Tables.Count > 0 && ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) 

Cependant, lorsque la ligne nubmer < = 0

dt1 = dt.AsEnumerable().CopyToDataTable(); 

Cette ligne n'a pas de sens. Avez-vous besoin d'aller chercher des lignes nulles?

+1

S'il n'y avait pas de tables, le code échouerait ailleurs. L'OP vérifie avec succès s'il y a des lignes. –

+0

merci pour le commentaire jon – Zbidi