2011-09-29 4 views
2

Je viens de terminer une chose pour résoudre un autre problème avec la liaison de données.DataBinding: ne contient pas une propriété avec le nom '(columnName)'

Je viens d'implémenter une instruction select qui joint 2 tables donc sur ma page ASP je peux regarder une colonne dans la 2ème table et voir si une intégration est faite ou non, et faire varier les résultats sur cette note

J'ai examiné des problèmes similaires et essayé les solutions, mais cela n'a pas fonctionné pour moi. Le message d'erreur exact est:

DataBinding: 'System.Data.DataRowView' ne contient pas de propriété portant le nom 'Integration'.

L'instruction Select:

SELECT productid, 
     productname, 
     productsku, 
     quantity, 
     productprice, 
     productprice * quantity AS totalprice, 
     shoppingcartrecid, 
     uom, 
     packingslip, 
     logodesignnumber, 
     customtext, 
     nametext, 
     extracharge, 
     custitem, 
     t1.catalogtype, 
     catalogid, 
     relatedchargeid, 
     upsflag 
FROM shoppingcart t1 
     INNER JOIN itemcatalogprofile t2 
     ON t1.catalogtype = t2.catalogtype 

Où Im utiliser:

<asp:HyperLink ID="HyperLink" runat="server" style="cursor:pointer; text-decoration:none;" 
NavigateUrl='<%# (Eval("Integration").ToString() == "Y") ? String.Format("~integration/vendorframe.aspx?CatalogID={0}",Eval("CatalogID")) : String.Format("~/storefront.aspx?CatalogID={0}",Eval("CatalogID"))%>'> 

S'il y a une autre information que je vous dois, je vais essayer de l'obtenir, toute aide est appréciée.

Merci

Il y avait 2 parties à la réponse:

Tout d'abord, j'ai oublié d'ajouter t2.Integration completly à ma sélection ce matin après que je l'ai fait quand je l'ai couru sur une requête de test

Deuxièmement, j'utilisais: Eval ("Intégration"). ToString() .. après avoir pris ToString hors de la page a commencé à travailler .. Merci à tous

+0

Afficher le code pour l'ensemble de la table/grille. Il y a des chances que le champ "Intégration" soit absent de votre source de données mais que vous l'utilisiez dans votre tableau. Edit ** merci Blake n'a même pas regardé toute la déclaration. – pat8719

+2

Les chances sont-elles? Il manque l'intégration dans l'instruction select. –

Répondre

1

Il n'y a pas une colonne appelée Intégration, ce qui provoquerait le erreur que vous rencontrez.

Faire un INNER JOIN ne montrera automatiquement pas les choses qui n'existent pas. Vous devez modifier votre instruction SQL en une jointure externe, puis vérifier l'existence de certains champs dans la table ItemCatalogProfile.

+0

Wow .. Je vois que maintenant, je l'ai mis dans ma requête de test quand j'ai testé les résultats, mais l'ai complètement raté comme je l'ai mis ici, je vais ajouter cela et voir les résultats –

1

Il ne semble pas y avoir de colonne "Integration" dans votre requête.

1

Il semble que les colonnes Integration et CatalogID soient manquantes dans l'instruction select.

Questions connexes