Querying with the DataReader
The CData ADO.NET Provider for QuickBooks POS implements two ADO.NET interfaces you can use to retrieve data from QuickBooks POS: QuickBooksPOSDataAdapter and QuickBooksPOSDataReader objects. Whereas QuickBooksPOSDataAdapter objects retrieve a single result set of all the data that matches a query, QuickBooksPOSDataReader objects fetch data in subset increments as needed.
Using the QuickBooksPOSDataReader
The QuickBooksPOSDataReader retrieves data faster than the QuickBooksPOSDataAdapter because it can retrieve data in pages. As you read data from the QuickBooksPOSDataReader, 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=myuseraccount;password=mypassword;URL=http://localhost:2080;qbxmlversion=3.0;"; using (QuickBooksPOSConnection connection = new QuickBooksPOSConnection(connectionString)) { QuickBooksPOSCommand cmd = new QuickBooksPOSCommand("SELECT * FROM Customers", connection); QuickBooksPOSDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["ListId"], rdr["LastName"])); } }
VB.NET
Dim connectionString As String = "user=myuseraccount;password=mypassword;URL=http://localhost:2080;qbxmlversion=3.0;" Using connection As New QuickBooksPOSConnection(connectionString) Dim cmd As New QuickBooksPOSCommand("SELECT * FROM Customers", connection) Dim rdr As QuickBooksPOSDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("ListId"), rdr("LastName"))) End While End Using