Querying with the DataReader
The CData ADO.NET Provider for Google Spanner implements two ADO.NET interfaces you can use to retrieve data from Google Spanner: GoogleSpannerDataAdapter and GoogleSpannerDataReader objects. Whereas GoogleSpannerDataAdapter objects retrieve a single result set of all the data that matches a query, GoogleSpannerDataReader objects fetch data in subset increments as needed.
Using the GoogleSpannerDataReader
The GoogleSpannerDataReader retrieves data faster than the GoogleSpannerDataAdapter because it can retrieve data in pages. As you read data from the GoogleSpannerDataReader, 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 [CData].[GoogleSpanner].Customer table:
C#
string connectionString = "ProjectId='project1';InstanceId='instance1';Database='db1';OAuthClientId='757060765381';OauthClientSecret='abc';"; using (GoogleSpannerConnection connection = new GoogleSpannerConnection(connectionString)) { GoogleSpannerCommand cmd = new GoogleSpannerCommand("SELECT * FROM [CData].[GoogleSpanner].Customer", connection); GoogleSpannerDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["Name"], rdr["TotalDue"])); } }
VB.NET
Dim connectionString As String = "ProjectId='project1';InstanceId='instance1';Database='db1';OAuthClientId='757060765381';OauthClientSecret='abc';" Using connection As New GoogleSpannerConnection(connectionString) Dim cmd As New GoogleSpannerCommand("SELECT * FROM [CData].[GoogleSpanner].Customer", connection) Dim rdr As GoogleSpannerDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("Name"), rdr("TotalDue"))) End While End Using