In einem Versuch, eine 3-Tier-Architektur C# asp.net-Anwendung zu erstellen, habe ich begonnen, eine Klasse zu erstellen, die Datenbank für die Verbindung mit der Datenbank verwendet wird, eine andere Klasse, die ist Stadt mit einer Methode für jede Spalte in den Tabellenstädten und eine Cities-Klasse, in der ich die GetCities-Methode habe, die eine Liste von City-Objekten erstellt und dann mithilfe des DataSource-Assistenten das Steuerelement für die Verwendung der Daten von GetCities() verwendet . Ich bekomme nur Leerzeichen in der Dropdown-Liste. Irgendeine Idee warum?Auffüllen Dropdown-Liste aus einer Liste von Objekten
public List<City> GetCities()
{
List<City> cities = new List<City>();
Database db = new Database();
SqlConnection conn = db.GetConnection();
String sql = "SELECT * FROM CITIES";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
City c = new City(reader.GetInt32(0), reader.GetString(1).ToString());
cities.Add(c);
}
db.CloseConnection();
return cities;
}
dank
Das Problem ist in dem Code, den Sie nicht geteilt haben! Wie bevölkern Sie die Liste? ** Was ist der Code, den WIZARD generiert? ** – Aliostad
Ihr Code zum Ausfüllen der Liste sieht gut aus. Das Problem muss sein, wie Sie die Drop-Down-Liste binden (vielleicht können Sie das posten)? Ich weiß, dass du gesagt hast, dass du einen Zauberer benutzt hast, der der erste Ort wäre, an dem ich nachsehen würde, was er tut. Außerdem schließen Sie Ihre Datenbankverbindung, aber wenn eine Ausnahme vorliegt, wird sie nicht geschlossen. Verwenden Sie entweder try/finally oder geben Sie in Ihrem Aufruf von ExecuteReader an, dass die Verbindung geschlossen wird, wenn der Reader geschlossen wird, und verwenden Sie eine using() -Anweisung für Ihren Reader. –
Der Wizard, über den ich spreche, wird durch Klicken auf "Datenquelle auswählen" in der DropDownList aufgerufen, und es erscheint ein Popup-Fenster, das mich zur Eingabe einer Datenquelle auffordert. Ich wähle eine neue Datenquelle und dann ein weiteres Fenster, aus dem ich Object aus einer Liste auswähle, die "Access db, SQL db, Entity" usw. enthält. Danach öffnet sich ein weiteres Fenster, um das Objekt auszuwählen, in meinem Fall Cities. Weiter> Wählen Sie eine Methode, die in meinem Fall GetCities() ist. – user228137