Benutzer mit den meisten Antworten
effektive Variante zum Füllen einer Liste vom Typ String mit dem Ergebnis eines SQl-Statements

Frage
-
Hallo,
welche effektive (kurze) Variante gibt es, eine Liste vom Typ String mit dem Ergebnis eines SQl-Statements zu füllen?string query = "SELECT Benutzer FROM Users";
SqlCommand command = new SqlCommand(query, connection);
connection.Open();
SqlDataAdapter dataAdapter = new SqlDataAdapter(command);// bisher immer eine DataTable gefüllt
DataTable table = new DataTable("Users");
dataAdapter.Fill(table);// jetzt eine Liste füllen
List<string> users = new List<string>();
???Alexander
Antworten
-
Hallo Alexander,
verwende direkt einen DataReader, das spart den Umweg über die DataTable.
Beispiel für die Northwind:public static IList<string> GetCompanyList() { var list = new List<string>(); using (var connection = new SqlConnection(DefaultConnectionString)) // Northwind { connection.Open(); using (var command = new SqlCommand("SELECT CompanyName FROM dbo.Customers", connection)) { using (var reader = command.ExecuteReader()) { while (reader.Read()) { if (!reader.IsDBNull(0)) list.Add(reader.GetString(0)); } } } } return list; }
wobei man das weiter verallgemeinern kann.
Gruß Elmar
- Als Antwort markiert AlexanderRi Freitag, 14. September 2012 17:45
Alle Antworten
-
Hallo Alexander,
verwende direkt einen DataReader, das spart den Umweg über die DataTable.
Beispiel für die Northwind:public static IList<string> GetCompanyList() { var list = new List<string>(); using (var connection = new SqlConnection(DefaultConnectionString)) // Northwind { connection.Open(); using (var command = new SqlCommand("SELECT CompanyName FROM dbo.Customers", connection)) { using (var reader = command.ExecuteReader()) { while (reader.Read()) { if (!reader.IsDBNull(0)) list.Add(reader.GetString(0)); } } } } return list; }
wobei man das weiter verallgemeinern kann.
Gruß Elmar
- Als Antwort markiert AlexanderRi Freitag, 14. September 2012 17:45