Querying with the DataAdapter
The CData ADO.NET Provider for SAP Cloud for Customer implements two ADO.NET interfaces you can use to retrieve data from SAP Cloud for Customer: SAPHybrisC4CDataAdapter and SAPHybrisC4CDataReader objects. Whereas SAPHybrisC4CDataAdapter objects retrieve a single result set of all the data that matches a query, SAPHybrisC4CDataReader objects fetch data in subset increments as needed.
Using the SAPHybrisC4CDataAdapter
Use the adapter's Fill method to retrieve data from the data source. An empty DataTable instance is passed as an argument to the Fill method. When the method returns, the DataTable instance is populated with the queried data. Note that the SAPHybrisC4CDataAdapter is slower than the SAPHybrisC4CDataReader because the Fill method needs to retrieve all data from the data source before returning.
The following example selects the ObjectID and AccountName columns of the AccountCollection table:
C#
string connectionString = "User=user;Password=password;"; using (SAPHybrisC4CConnection connection = new SAPHybrisC4CConnection(connectionString)) { SAPHybrisC4CDataAdapter dataAdapter = new SAPHybrisC4CDataAdapter( "SELECT ObjectID, AccountName FROM AccountCollection", connection); DataTable table = new DataTable(); dataAdapter.Fill(table); Console.WriteLine("Contents of AccountCollection."); foreach (DataRow row in table.Rows) { Console.WriteLine("{0}: {1}", row["ObjectID"], row["AccountName"]); } }
VB.NET
Dim connectionString As String = "User=user;Password=password;" Using connection As New SAPHybrisC4CConnection(connectionString) Dim dataAdapter As New SAPHybrisC4CDataAdapter("SELECT ObjectID, AccountName FROM AccountCollection", connection) Dim table As New DataTable() dataAdapter.Fill(table) Console.WriteLine("Contents of AccountCollection.") For Each row As DataRow In table.Rows Console.WriteLine("{0}: {1}", row("ObjectID"), row("AccountName")) Next End Using