Connect to PostgreSQL Data from PowerBuilder via ADO.NET
This article demonstrates using the CData ADO.NET Provider for PostgreSQL in PowerBuilder, showcasing the ease of use and compatibility of these standards-based controls across various platforms and development technologies that support Microsoft .NET, including Appeon PowerBuilder.
This article shows how to create a basic PowerBuilder application that uses the CData ADO.NET Provider for PostgreSQL to perform reads and writes.
- In a new WPF Window Application solution, add all the Visual Controls needed for the connection properties. Below is a typical connection string:
User=postgres;Password=admin;Database=postgres;Server=127.0.0.1;Port=5432;
To connect to PostgreSQL, set the Server, Port (the default port is 5432), and Database connection properties and set the User and Password you wish to use to authenticate to the server. If the Database property is not specified, the data provider connects to the user's default database.
SSH Connectivity for PostgreSQL
You can use SSH (Secure Shell) to authenticate with PostgreSQL, whether the instance is hosted on-premises or in supported cloud environments. SSH authentication ensures that access is encrypted (as compared to direct network connections).
SSH Connections to PostgreSQL in Password Auth Mode
To connect to PostgreSQL via SSH in Password Auth mode, set the following connection properties:
- User: PostgreSQL User name
- Password: PostgreSQL Password
- Database: PostgreSQL database name
- Server: PostgreSQL Server name
- Port: PostgreSQL port number like 3306
- UserSSH: "true"
- SSHAuthMode: "Password"
- SSHPort: SSH Port number
- SSHServer: SSH Server name
- SSHUser: SSH User name
- SSHPassword: SSH Password
SSH Connections to PostgreSQL in Public Key Auth Mode
To connect to PostgreSQL via SSH in Password Auth mode, set the following connection properties:
- User: PostgreSQL User name
- Password: PostgreSQL Password
- Database: PostgreSQL database name
- Server: PostgreSQL Server name
- Port: PostgreSQL port number like 3306
- UserSSH: "true"
- SSHAuthMode: "Public_Key"
- SSHPort: SSH Port number
- SSHServer: SSH Server name
- SSHUser: SSH User name
- SSHClientCret: the path for the public key certificate file
- Add the DataGrid control from the .NET controls.
-
Configure the columns of the DataGrid control. Below are several columns from the Account table:
<DataGrid AutoGenerateColumns="False" Margin="13,249,12,14" Name="datagrid1" TabIndex="70" ItemsSource="{Binding}"> <DataGrid.Columns> <DataGridTextColumn x:Name="idColumn" Binding="{Binding Path=Id}" Header="Id" Width="SizeToHeader" /> <DataGridTextColumn x:Name="nameColumn" Binding="{Binding Path=ShipName}" Header="ShipName" Width="SizeToHeader" /> ... </DataGrid.Columns> </DataGrid> - Add a reference to the CData ADO.NET Provider for PostgreSQL assembly.
Connect the DataGrid
Once the visual elements have been configured, you can use standard ADO.NET objects like Connection, Command, and DataAdapter to populate a DataTable with the results of an SQL query:
System.Data.CData.PostgreSQL.PostgreSQLConnection conn
conn = create System.Data.CData.PostgreSQL.PostgreSQLConnection(connectionString)
System.Data.CData.PostgreSQL.PostgreSQLCommand comm
comm = create System.Data.CData.PostgreSQL.PostgreSQLCommand(command, conn)
System.Data.DataTable table
table = create System.Data.DataTable
System.Data.CData.PostgreSQL.PostgreSQLDataAdapter dataAdapter
dataAdapter = create System.Data.CData.PostgreSQL.PostgreSQLDataAdapter(comm)
dataAdapter.Fill(table)
datagrid1.ItemsSource=table.DefaultView
The code above can be used to bind data from the specified query to the DataGrid.