In der Vergangenheit hat IBM einen eigenen ADO.NET-Provider für Informix bereitgestellt. Dieser ist durch den DB2-Provider ersetzt worden. Details dazu finden sich in diesem Artikel bei IBM:
Differences between .NET Providers - IBM Documentation
Für neue Entwicklungen wird der IBM Data Server .NET-Provider empfohlen, der auf NuGet hier zu finden ist: NuGet Gallery | IBM.Data.DB2.Core. Dieser verwendet das aktuelle DRDA-Protokoll.
Der Provider arbeitet gleichermaßen mit DB2 und Informix-Datenbanken. Um Daten aus Informix z. B. mit dem DbCommandSetDataProvider zu verwenden, kann wie folgt vorgegangen werden:
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();
Die Parameter bei AddCommand bilden dabei die Syntax für die Einrahmung von Spaltennamen und die Angabe von SQL-Parametern für Informix-Datenbanken ab.