Imports System.Data.Common
Imports System.Configuration


Module Module1

    Public Sub Main()

        ' Pobieramy wszystkie informacje z pliku konfiguracyjnego
        Dim Factory, Connection, Query As String
        Factory = ConfigurationManager.AppSettings("Factory")
        Connection = ConfigurationManager.AppSettings("Connection")
        Query = ConfigurationManager.AppSettings("Query")

        ' Pobieramy fabrykę dostawcy
        Dim Provider As DbProviderFactory
        Provider = DbProviderFactories.GetFactory(Factory)

        ' Używamy fabryki do utworzenia połączenia
        Dim con As DbConnection = Provider.CreateConnection()
        con.ConnectionString = Connection

        ' Używamy fabryki do utworzenia adaptera danych
        ' oraz do wypełnienia obiektu DataSet
        Dim Adapter As DbDataAdapter = Provider.CreateDataAdapter
        Adapter.SelectCommand = Provider.CreateCommand()
        Adapter.SelectCommand.Connection = con
        Adapter.SelectCommand.CommandText = Query
        Dim ds As New DataSet
        Adapter.Fill(ds, "Orders")

        ' Wyświetlamy pobrane informacje
        For Each Row As DataRow In ds.Tables("Orders").Rows
            Console.WriteLine(Row("OrderID"))
        Next

        Console.ReadLine()
    End Sub

End Module
