Connect to MySQL Data from PowerBuilder via ADO.NET
This article demonstrates using the CData ADO.NET Provider for MySQL 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 MySQL 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=myUser;Password=myPassword;Database=NorthWind;Server=myServer;Port=3306;
The CData Provider supports connecting to on-premises and cloud-hosted versions of MySQL such as Amazon RDS for MySQL, Google Cloud SQL for MySQL, Azure Database for MySQL, or Oracle MySQL HeatWave. The Server and Port properties must be set to a MySQL server. If IntegratedSecurity is set to false, then User and Password must be set to valid user credentials. Optionally, Database can be set to connect to a specific database. If not set, tables from all databases will be returned.
SSH Connectivity for MySQL
You can use SSH (Secure Shell) to authenticate with MySQL, 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 MySQL in Password Auth Mode
To connect to MySQL via SSH in Password Auth mode, set the following connection properties:
- User: MySQL User name
- Password: MySQL Password
- Database: MySQL database name
- Server: MySQL Server name
- Port: MySQL 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 MySQL in Public Key Auth Mode
To connect to MySQL via SSH in Password Auth mode, set the following connection properties:
- User: MySQL User name
- Password: MySQL Password
- Database: MySQL database name
- Server: MySQL Server name
- Port: MySQL 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 MySQL 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.MySQL.MySQLConnection conn
conn = create System.Data.CData.MySQL.MySQLConnection(connectionString)
System.Data.CData.MySQL.MySQLCommand comm
comm = create System.Data.CData.MySQL.MySQLCommand(command, conn)
System.Data.DataTable table
table = create System.Data.DataTable
System.Data.CData.MySQL.MySQLDataAdapter dataAdapter
dataAdapter = create System.Data.CData.MySQL.MySQLDataAdapter(comm)
dataAdapter.Fill(table)
datagrid1.ItemsSource=table.DefaultView
The code above can be used to bind data from the specified query to the DataGrid.