2009-03-30 9 views
2

Alors qu'est-ce que cela signifie exactement?IListSource ne contient aucune source de données

Certains ont conseillé de contourner cette erreur en liant uniquement un gridview à un jeu de données lorsque le nombre de lignes de la datatable est supérieur à zéro.

mais qu'en est-il si, par exemple, votre recherche ne renvoyait aucun enregistrement, votre datatable n'aurait donc pas de lignes, mais vous pouvez quand même vous lier à l'ensemble de données? En plus de vérifier si les lignes sont dans le jeu de données (ou datatable), comment puis-je m'assurer que le fichier ilist contient une source de données valide?

Quelle est la meilleure méthode pour cela?

Répondre

7

Assurez-vous que vous utilisez ceci:

if (!this.IsPostBack) 
{ 
} 

Aussi, vous pouvez vérifier la dataSet.Tables.Count > 0 puis return dataSet autre return null;

Je pense que le retour DataSet ont Count = 0

0

Le IListSource ne contient pas de sources de données .

Pourquoi cette erreur se produit-elle lorsque le site Web est hébergé sur un serveur IIS?

Est-ce dû à l'absence de connexion correcte de la source de données au serveur? J'utilise cette vérification de publication pendant l'appel de la méthode.

if (!this.IsPostBack) { ... } 
0

assurez-vous que vous avez fermé la connexion après la liaison de données au gridview

1

S'il vous plaît vérifier votre chaîne de connexion. Dans mon cas, la chaîne de connexion était le problème.

1

Ancien fil, mais je voulais juste faire savoir aux gens que j'ai eu cette erreur récemment (en regardant notre système hérité) et s'avère que le problème était lié à la liaison d'une source de données directement à un ensemble de données.

Dim MyDs As new Dataset 
MyDs = GetFromDataBase() 

MyDropDownList.Datasource = MyDs 

La chose étrange est que je l'ai fait code comme cela pendant des années et des années, plus il a bien fonctionné sur ma machine locale (meilleure ligne Dev jamais = P), mais sur le serveur, il ne cessait de s'écraser.

je devais faire

MyDropDownList.Datasource = MyDs.Tables(0) 

Peut-être que c'est quelque chose à voir avec .Net 4.0 sur Windows 2008 Server, pas sûr, mais nous espérons que cela pourrait aider quelqu'un perdre 30min de chasse bug pour quelque chose que vos yeux disent est parfaitement bien (allbeit legacy) code.

+0

J'étais exactement dans la même situation. J'ai trouvé étrange que l'application fonctionnait parfaitement bien dans IIS sur ma machine locale. Modifiez la ligne comme suit: 'gridView.DataSource = dataSet.Tables [0];' et presto – Carel