Querying with the DataReader
The CData ADO.NET Provider for Amazon Redshift implements two ADO.NET interfaces you can use to retrieve data from Amazon Redshift: RedshiftDataAdapter and RedshiftDataReader objects. Whereas RedshiftDataAdapter objects retrieve a single result set of all the data that matches a query, RedshiftDataReader objects fetch data in subset increments as needed.
Using the RedshiftDataReader
The RedshiftDataReader retrieves data faster than the RedshiftDataAdapter because it can retrieve data in pages. As you read data from the RedshiftDataReader, it periodically requests the next page of results from the data source, if required. This causes results to be returned at a faster rate. The following example selects all the columns from the "sales_db"."public".Orders table:
C#
string connectionString = "User=admin;Password=admin;Database=dev;Server=examplecluster.my.us-west-2.redshift.amazonaws.com;Port=5439;"; using (RedshiftConnection connection = new RedshiftConnection(connectionString)) { RedshiftCommand cmd = new RedshiftCommand("SELECT * FROM \"sales_db\".\"public\".Orders", connection); RedshiftDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["ShipName"], rdr["ShipCity"])); } }
VB.NET
Dim connectionString As String = "User=admin;Password=admin;Database=dev;Server=examplecluster.my.us-west-2.redshift.amazonaws.com;Port=5439;" Using connection As New RedshiftConnection(connectionString) Dim cmd As New RedshiftCommand("SELECT * FROM \"sales_db\".\"public\".Orders", connection) Dim rdr As RedshiftDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("ShipName"), rdr("ShipCity"))) End While End Using