DataAdapter を使用したクエリ
CData ADO.NET Provider for SAP ERP では、次の2つのネイティブ.NET インターフェースを使用して、SAP ERP からデータを取得できます。SAPERPDataAdapter オブジェクトおよびSAPERPDataReader オブジェクト。各オブジェクトは同じタスク(データの取得)を実行しますが、実行方法が異なります。SAPERPDataAdapter オブジェクトはクエリに一致するすべてのデータを取得しますが、SAPERPDataReader オブジェクトは必要に応じてインクリメントしながら一部のデータだけをフェッチします。
SAPERPDataAdapter の使用
アダプターのFill メソッドを使用して、データソースからデータを取得します。空のDataTable インスタンスがFill メソッドへの引数として渡されます。このメソッドが戻ってきたとき、DataTable インスタンスにはクエリされたデータが設定されています。Fill メソッドは、戻る前にデータソースからすべてのデータを取得する必要があるため、SAPERPDataAdapter はSAPERPDataReader よりも時間がかかります。
次の例は、MARA テーブルのMANDT カラムとMATNR カラムを選択します。
C#
string connectionString = "Host=sap.mydomain.com;User=EXT90033;Password=xxx;Client=800;System Number=09;ConnectionType=Classic;"; using (SAPERPConnection connection = new SAPERPConnection(connectionString)) { SAPERPDataAdapter dataAdapter = new SAPERPDataAdapter( "SELECT MANDT, MATNR FROM MARA", connection); DataTable table = new DataTable(); dataAdapter.Fill(table); Console.WriteLine("Contents of MARA."); foreach (DataRow row in table.Rows) { Console.WriteLine("{0}: {1}", row["MANDT"], row["MATNR"]); } }
VB.NET
Dim connectionString As String = "Host=sap.mydomain.com;User=EXT90033;Password=xxx;Client=800;System Number=09;ConnectionType=Classic;" Using connection As New SAPERPConnection(connectionString) Dim dataAdapter As New SAPERPDataAdapter("SELECT MANDT, MATNR FROM MARA", connection) Dim table As New DataTable() dataAdapter.Fill(table) Console.WriteLine("Contents of MARA.") For Each row As DataRow In table.Rows Console.WriteLine("{0}: {1}", row("MANDT"), row("MATNR")) Next End Using