Connect to IBM Informix Databases

In the past, IBM provided its own ADO.NET provider for Informix. This has been replaced by the DB2 provider. Details can be found in this article at IBM:

Differences between .NET Providers - IBM Documentation

For new developments, the IBM Data Server .NET Provider is recommended, which can be found on NuGet here: NuGet Gallery | IBM.Data.DB2.Core. This uses the current DRDA protocol.

The provider works equally well with DB2 and Informix databases. To use data from Informix with the DbCommandSetDataProvider, for example, you can proceed as follows:

IDbCommand customers = connection.CreateCommand();
customers.CommandText  = "Select * from \"Customers\"";
IDbCommand orders = connection.CreateCommand();
orders.CommandText  = "Select * from \"Orders\"";

DbCommandSetDataProvider provider = new DbCommandSetDataProvider();
provider.AddCommand(customers, "Customers", "\"{0}\"", "?");
provider.AddCommand(orders, "Orders",  "\"{0}\"", "?");
provider.AddRelation("Customers2Orders", "Customers", "Orders", "CustomerID", "CustomerID");

LL.DataSource = provider;
LL.Design();

The parameters for AddCommand map the syntax for framing column names and specifying SQL parameters for Informix databases.