Querying with the DataReader
The CData ADO.NET Provider for QuickBooks implements two ADO.NET interfaces you can use to retrieve data from QuickBooks: QuickBooksDataAdapter and QuickBooksDataReader objects. Whereas QuickBooksDataAdapter objects retrieve a single result set of all the data that matches a query, QuickBooksDataReader objects fetch data in subset increments as needed.
Using the QuickBooksDataReader
The QuickBooksDataReader retrieves data faster than the QuickBooksDataAdapter because it can retrieve data in pages. As you read data from the QuickBooksDataReader, 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 Customers table:
C#
string connectionString = "User=test;Password=test;URL=http://localhost:8166;"; using (QuickBooksConnection connection = new QuickBooksConnection(connectionString)) { QuickBooksCommand cmd = new QuickBooksCommand("SELECT * FROM Customers", connection); QuickBooksDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["Id"], rdr["Name"])); } }
VB.NET
Dim connectionString As String = "User=test;Password=test;URL=http://localhost:8166;" Using connection As New QuickBooksConnection(connectionString) Dim cmd As New QuickBooksCommand("SELECT * FROM Customers", connection) Dim rdr As QuickBooksDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("Id"), rdr("Name"))) End While End Using