using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.Data; using System.Text; namespace Bug100846 { public static class MySQLService { public static void Run(string a_sConnectionString, string a_sCommand, List a_parameters) { MySqlConnection z_connection = null; MySqlCommand z_command = null; bool a_bConnectionOpen = false; int z_nRetries = 3; for (int k = 0; !a_bConnectionOpen && k < z_nRetries; ++k) { try { z_connection = new MySqlConnection(); z_connection.ConnectionString = a_sConnectionString; z_command = z_connection.CreateCommand(); z_command.CommandType = System.Data.CommandType.StoredProcedure; z_command.CommandText = a_sCommand; z_command.CommandTimeout = 600; foreach (MySqlParameter z_parameter in a_parameters) { z_command.Parameters.Add(z_parameter); } z_connection.Open(); a_bConnectionOpen = true; } catch (Exception e) { z_connection = null; z_command = null; if (k + 1 < z_nRetries) { Console.Write("Retrying after Aurora Connection/Command Open attempt #" + k.ToString() + " failed. " + e.Message); } else { Console.Write("Aurora Connection/Command Open attempt #" + k.ToString() + " failed: " + e.Message); return; } } } try { MySqlDataReader z_reader = z_command.ExecuteReader(); if (z_reader.HasRows) { while (z_reader.Read()) { Console.Write("success"); } } } catch (Exception e) { Console.Write(e.ToString()); } } } class Program { static void Main(string[] args) { if (args.Length > 1) { List z_parameters = new List(); for (int x = 2; x < args.Length; ++x) { if (!string.IsNullOrWhiteSpace(args[x])) { string[] z_parts = args[x].Split(','); if (z_parts.Length == 3) { MySqlParameter z_parameter = new MySqlParameter(); switch (z_parts[0]) { case "int": { z_parameter.DbType = DbType.Int32; break; } case "string": default: { z_parameter.DbType = DbType.String; break; } } z_parameter.ParameterName = z_parts[1]; z_parameter.Value = z_parts[2]; z_parameters.Add(z_parameter); } } } MySQLService.Run(args[0], args[1], z_parameters); } } } }