2009-06-23 7 views
2

J'ai un asp: SqlDataSource ID = "SqlDataSource1" outil sur ma page aspx, ce que je veux faire dans le C# code derrière est de transférer les enregistrements retournés par la source de données et les mettre dans un DataSet, pour que je puisse ajouter une pagination sur ma page, comment faire, mes tentatives ont échoué jusqu'ici ?!asp: SqlDataSource à DataSet Items

Mes tentatives ont été jusqu'ici le long des lignes de:

Articles DataSet = new DataSet(); produits = SqlDataSource1.Data();

Mais l'erreur que j'obtiens est que le contrôle SqlDataSource1 n'est pas accessible dans ce contexte et donc évidemment l'intellisense ne le récupère pas, donc le bit 'Data()' est une fiction complète de ma part ...

Merci, R

Répondre

3

flavour404, Vous ne devriez pas avoir cette erreur si vous avez correctement configuré le contrôle. Je viens de tester votre scénario et cela fonctionne sans l'erreur que vous avez mentionnée.

SqlDataSource1 n'a pas de méthode de données, vous cherchez peut-être la méthode Select() et il ne retourne pas DataSet. Si vous définissez la propriété SqlDataSource.DataSourceMode sur 'DataSet', vous obtiendrez l'objet DataView. Voir l'exemple ci-dessous

<asp:SqlDataSource ID="SqlDataSource1" runat="server" DataSourceMode="DataSet" 
      ConnectionString="<%$ ConnectionStrings:testConnectionString %>" 
      SelectCommand="SELECT * FROM [Readings]"></asp:SqlDataSource> 

DataView testView = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty); 

Lire MSDN pour plus de détails:

http://msdn.microsoft.com/en-us/library/dz12d98w.aspx
http://msdn.microsoft.com/en-us/library/system.data.dataview.aspx

Hope this helps!

+0

Ok, cela fait sens, mais dans mon code C# behind je reçois toujours l'erreur SqlDataSource1 n'existe pas dans le contexte actuel. Comment faire référence à qui se trouve sur ma page search_results.aspx? Merci. – flavour404

+0

Oh, et merci pour ce qui précède, c'était vraiment utile. – flavour404

+0

C'est bizarre. Êtes-vous sûr que vous éditez le bon code derrière le fichier? Essayez d'accéder à d'autres contrôles de la page aspx dans votre code derrière. Vous pouvez également vérifier les ID du contrôle auquel vous accédez. Essayez de créer le code et supprimez les erreurs de construction. Corriger les erreurs de construction devrait ramener l'intellisense. – Faheem

2

Cela devrait fonctionner! :)


DataView view = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty); 

DataTable table = view.ToTable(); 
DataSet ds = new DataSet(); 
ds.Tables.Add(table); 
Questions connexes