Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

qu'est-ce qui cloche dans ce code?

1 réponse
Avatar
Chris
Bonjour,

Je veux limiter le nombre de données montrées dans une page provenant d'une
banque de données.
Tout marche sauf cette erreur:
"Unable to cast object of type 'System.Web.UI.WebControls.SqlDataSource' to
type 'System.Collections.IEnumerable'"
à la ligne: PageDataSource.DataSource = SqlDataSource2

Si quelqu'un sait quoi changer dans le code ...
Merci
Chris


code-behind:
-----------
Imports System.Data
Imports System.Data.OleDb

Partial Class Item
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim PageDSource As New PagedDataSource()
PageDSource.DataSource = SqlDataSource2
PageDSource.AllowPaging = True
PageDSource.PageSize = 6
End Sub
End Class


aspx file:
---------
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$
ConnectionStrings:prod %>"
SelectCommand="SELECT * FROM [Prod] WHERE ([ItemId] = @ItemId)">
<SelectParameters>
<asp:QueryStringParameter Name="CId" DefaultValue="1"
QueryStringField="ite" />
</SelectParameters>
</asp:SqlDataSource>

1 réponse

Avatar
Simon Mourier [SoftFluent]
La classe SqlDataSource n'implémente pas IEnumerable tout simplement.

Peut-être souhaitez vous faire

PageDSource.DataSource = ((IListSource)SqlDataSource2).GetList();

Désolé c'est du C# je ne connais pas la syntaxe vb :-) en gros on "caste"
SqlDataSource en IListSource et on appelle la méthode GetList() de
IListDatasource.
Simon.
www.softfluent.com


"Chris" <qffg> a écrit dans le message de news:

Bonjour,

Je veux limiter le nombre de données montrées dans une page provenant
d'une banque de données.
Tout marche sauf cette erreur:
"Unable to cast object of type 'System.Web.UI.WebControls.SqlDataSource'
to type 'System.Collections.IEnumerable'"
à la ligne: PageDataSource.DataSource = SqlDataSource2

Si quelqu'un sait quoi changer dans le code ...
Merci
Chris


code-behind:
-----------
Imports System.Data
Imports System.Data.OleDb

Partial Class Item
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim PageDSource As New PagedDataSource()
PageDSource.DataSource = SqlDataSource2
PageDSource.AllowPaging = True
PageDSource.PageSize = 6
End Sub
End Class


aspx file:
---------
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$
ConnectionStrings:prod %>"
SelectCommand="SELECT * FROM [Prod] WHERE ([ItemId] = @ItemId)">
<SelectParameters>
<asp:QueryStringParameter Name="CId" DefaultValue="1"
QueryStringField="ite" />
</SelectParameters>
</asp:SqlDataSource>