Storing Multiple Tables

You can use GFXDDataAdapter with a System.Data.DataSet object to hold multiple result sets.

The following example uses a dataset to store the full contents from three different tables.
string gfxdHost = "localhost";
int gfxdPort = 1527;
string connectionStr = string.Format(@"server={0}:{1}", gfxdHost, gfxdPort);

GFXDClientConnection connection = null;

try
{
    connection = new GFXDClientConnection(connectionStr);

    GFXDCommand command = connection.CreateCommand();
    command.CommandType = CommandType.Text;
    connection.Open();

    // Create adapter and data set to hold multiple result sets
    GFXDDataAdapter adapter = command.CreateDataAdapter();
    DataSet dataset = new DataSet("CustomerOrder");
    
    // Retrieve all customer records
    command.CommandText = "SELECT * FROM customer";
    adapter.Fill(dataset, "customer");

    // Retrieve all order records
    command.CommandText = "SELECT * FROM orders";
    adapter.Fill(dataset, "orders");

    // Retrieve all orderdetail records
    command.CommandText = "SELECT * FROM orderdetail";
    adapter.Fill(dataset, "orderdetail");


    // Parse all tables and rows in the data set
    foreach (DataTable table in dataset.Tables)
    {
        foreach (DataRow row in table.Rows)
        {
            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < row.Table.Columns.Count; i++)
                sb.AppendFormat("{0}, ", (row[i].ToString()));

            Console.WriteLine(sb.ToString());
        }
    }
}
catch (Exception e)
{
    ///
    /// Log or re-throw exception
    /// 
}
finally
{
    connection.Close();
}