Database Timings
SqlDataConnection/Adapter 
select * from tps_stations where location is not null  == (139 rows)
loop over these operations 100 times
SqlDataReader
TypedDataSet
DataSet
First column - retrieve DataReader and DataSet data by column number.  Retrieve as object 
(no cast).
Second column - retrieve DataReader and DataSet data by column number.  
Cast to string.
Third column - retrieve DataReader and DataSet data by column 
name.  Cast to string.
Typed DataSet does the same thing in all 3 columns - retrieve string member 
by property accessor.
Results are in 
"operations per second"
      |  | Object = r[ColNum] | String = r[ColNum].ToString | String = r[ColName].ToString | 
      | DataReader | 15 | 15 | 14 | 
      | Typed DataSet | 26 | 26 | 26 | 
      | DataSet | 35 | -- | -- |