Wie binden gridview mit linq/Entity Framework?
Ich zu binden, müssen GridView
ich bin mit diesem code:
ProductDBEntities db = new ProductPDBEntities();
var pro = from u in db.Products where u.PID == 1 select u;
if (pro != null)
{
GridView1.DataSource = pro;
GridView1.DataBind();
}
und immer diese Fehlermeldung.
System.InvalidOperationException:
Die Sequenz enthält mehr als ein
element
Kann jemand bitte sagen Sie mir, was ich bin doin falsch?
- Ich denke, Sie werden brauchen, to wandeln Sie es in ToList() für Sie arbeiten als DataSource für ein gridview
- ich habe versucht, ToList-Funktion seine mir dieser Fehler .. Datenquelle ist ein Ungültiger Typ. Es muss entweder ein IListSource, IEnumerable, oder IDataSource ELAPDBEntities db = new ELAPDBEntities(); var assetFinan = von u in db.AssetFinancings, in dem u.AppID == AppID wählen Sie u, wenn (assetFinan != null) { gvAssetFinance.DataSource = assetFinan.ToList(); gvAssetFinance.DataBind(); }
- U müssen, um ToList, wenn Sie die Zuordnung zu pro
- können Sie mir ein Beispiel .. bitte
- Sie brauchen nicht
ToList()
. Sie können das binden einesIEnumerable
an ein GridView. Undpro
im code ist einIQueryable
was ist einIEnumerable
. Die Ausnahme macht keinen Sinn im Kontext des Codes, den Sie haben oben gezeigt. Auf welcher Zeile bekommst du genau diese Ausnahme, wenn Sie Debuggen? - in der Zeit der Bindung
- Können Sie zeigen mehr von deinem code (das GridView-Teil in Ihrer aspx-Datei, vielleicht andere event-Handler des GridView-Steuerelements, die Sie implementiert haben, etc.)? Der Ursprung dieser Ausnahme muß irgendwo anders sein, der code, den Sie gezeigt haben, ist gültig. (Zum Beispiel: die
Single()
oderSingleOrDefault()
Erweiterung Methoden ein Kandidat für diese Ausnahme)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen
Duplication
und dann versuchen, es zu binden.Habe ich bearbeitet meine Letzte Antwort, um die komplette code :
First()
gibt eineProduct
Objekt. Ich glaube nicht, dass dieses Objekt hat einenToList()
Methode, oder?Dieser code kann hilfreich sein:
Wenn Sie eine Tabelle und Details kann verwendet werden:
Ersten, könnten Sie Ihre Daten überprüfen, um zu sehen, ob es mehr als ein Produkt mit PID = 1.
Zweite, die Sie verwenden können, die .First () - Methode, um sicherzustellen, dass Sie nur ein Ergebnis für die Bindung:
Speichern der Variablen zu den Objekt-Typ, und weisen Sie den Objekttyp datasource raster
Ich glaube, Sie haben zu tun
ToList()
beim hinzufügenDataSource
:Hinweis: Da es eine
GridView
, zu treffen hat, n die Anzahl der Zeilen.No row limit
.Ich das Problem lösen, wie dieses:
Ich es versuchen. Es ist Arbeit.