C# List<int> bevölkert von SQL-Gespeicherte Prozedur Ergebnisse
Ich bin mit C# im VS 2005 (.NET 2.0) und SQL Studio 2005 auf einem älteren CMS-made in Mitte der'00er Jahre. Ich bin beauftragt mit der Erstellung einer neuen Erlaubnis Tor, dass nur bestimmte Benutzer auf bestimmte Teile der Website.
Ich brauche Hilfe beim füllen einer Liste, basierend auf feedback, das ich bekam, als ich gepostet diese Frage: Füllen der ArrayList aus der Ergebnismenge der Gespeicherten Prozedur
So, jetzt, wie zu tun bekommen die Werte aus der gespeicherten Prozedur in eine Liste? Ich weiß, dies ist eine Anfänger Frage, aber ich bin ein Anfänger...
Jede Hilfe wird sehr geschätzt.
Betrachten Sie dies ein Beispiel für den Prozess der Einführung von Daten aus der Datenbank, die IU steuert, die Verwendung von generischen Listen in der Mitte. codeproject.com/KB/tree/TreeViewWithDatabase.aspx
Beachten Sie, dass der code für das Auffüllen einer ArrayList und füllen einer Liste<> wird meist der gleiche.
Beachten Sie, dass der code für das Auffüllen einer ArrayList und füllen einer Liste<> wird meist der gleiche.
InformationsquelleAutor Smittles | 2011-08-30
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt, Sie bekommen Ihre Ergebnisse aus einer
DataReader
alle Sie tun müssen ist, Lesen Sie jede Zeile, fügen Sie den Wert auf eine Liste.Erinnern zu entsorgen
DataReader
wenn Sie fertig sind.No code example is currently available or this language may not be supported.
Was redest du da?
sorry: DataReader.
InformationsquelleAutor Greg
Können Sie versuchen, mit dem Modell, die sich auf dieser MSDN-Seite unter Verwendung von Parametern mit einem SqlCommand-Objekt und eine Gespeicherte Prozedur. Das Beispiel ist hier gezeigt:
InformationsquelleAutor Matt Klepeis
es hängt davon ab, wie Sie retreived die Ergebnisse
reader?
dataset?
etwas anderes?
Spaziergang durch die Ergebnisse mit
oder vielleicht (ich erinnere mich nicht die genauen DataRow-syntax aus der Spitze von meinem Kopf...)
InformationsquelleAutor Michael Reed Schmidt
Was ist der cmd soll vor ExecuteReader()? Wenn ich es implementieren, ich bekomme
the name 'cmd' does not exist in the current context.
Nachricht.Handschuh - habe ich ein full-code-Beispiel. someIntField ist das Feld, das Sie die Rückkehr in Ihre SP von einigen Ganzzahl, die Sie wollen, um zu Ihrer Liste hinzufügen. Ich nannte es, denn ich habe keine Ahnung, was Sie zurückgeben. Ich gehe auch davon aus, dass Sie mithilfe von SQL Server.
Je nachdem, was Sie tun, möchten Sie vielleicht einen Blick in ein ORM, stackoverflow.com/questions/146087/best-performing-orm-for-net
InformationsquelleAutor nickytonline
Da Sie bereits die Tabelle, die Idee wäre für die Iteration über die Tabelle beim hinzufügen, dass die IDs der Anbieter in einer Liste.
Error 26 foreach statement cannot operate on variables of type 'System.Data.DataTable' because 'System.Data.DataTable' does not contain a public definition for 'GetEnumerator' C:\GFLD\trunk\CMS\CMS\CMS\InformationAndHelp.aspx.cs
undError 27 The best overloaded method match for 'System.Collections.Generic.List<int>.Add(int)' has some invalid arguments C:\GFLD\trunk\CMS\CMS\CMS\InformationAndHelp.aspx.cs
und diese, die ich behandeln kann:Error 28 Argument '1': cannot convert from 'object' to 'int' C:\GFLD\trunk\CMS\CMS\CMS\InformationAndHelp.aspx.cs
Schauen Sie auf Bearbeiten. Auch sollten Sie versuchen, analysieren den Inhalt von r["VendorID"] in ein int vor dem hinzufügen zu der Liste.
Ich bin immer ein "type mismatch" - irgendwie:
Error 29 Argument '1': cannot convert from 'object' to 'int'
Auch ein weiterer Fehler:
Error 28 The best overloaded method match for 'System.Collections.Generic.List<int>.Add(int)' has some invalid arguments
Das habe ich getan:
List<int> WDSHEVendorList = new List<int>(); foreach (DataRow datarow in GetAllWDSHEVendors().Rows) { //Loop through each row foreach (DataColumn column in GetAllWDSHEVendors().Columns) { WDSHEVendorList.Add(datarow[column]); } }
InformationsquelleAutor PedroC88
Was ich am Ende tun, ist mit einem DataTable als Vermittler-Daten-Typ, der gefüllt wird von der gespeicherten Prozedur. Dann die Umgestaltung der DataTable als Datenquelle in einer foreach-Schleife, die ich besiedelte die Liste. Ich brauchte eine zweite Frage, um zu diesem Schluss: 2-Spalte DataTable List<int> .NET 2.0
InformationsquelleAutor Smittles