Я бы рекомендовал использовать SqlDataReader, когда это возможно, для получения данных. Это более быстрый вариант, и похоже, что Microsoft не инвестирует в будущее DataSets.
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
if (conn.State == ConnectionState.Open)
{
string sql = "Select FirstName, LastName from Customers";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader != null)
{
while (reader.Read())
{
Customer cust = new Customer();
cust.FirstName = reader["FirstName"].ToString();
cust.LastName= reader["LastName"].ToString();
collection.Add(cust);
}
reader.Close();
}
conn.Close();
}