/// <summary> /// General format for running a insertion query on the guacamole database /// </summary> /// <returns><c>true</c>, if the values were inserted, <c>false</c> otherwise.</returns> /// <param name="queryString">Query string.</param> /// <param name="argNames">Argument names.</param> /// <param name="args">Arguments.</param> /// <param name="excepts">Exceptions.</param> private bool InsertQuery(string queryString, Queue <string> argNames, Queue <string> args, ref List <Exception> excepts) { const string exceptMessage = "The database arguments and argument names are not the same size."; //Validate if the arguments and names are the correct amount if (args.Count != argNames.Count) { excepts.Add(new GuacamoleDatabaseException(exceptMessage)); return(false); } //Make a deep copy of the queues to ensure data consistancy Queue <String> copiedArgNames = new Queue <String>(argNames.ToArray()); Queue <String> copiedArgs = new Queue <String>(args.ToArray()); try { using (GuacamoleDatabaseConnector gdbc = new GuacamoleDatabaseConnector(ref excepts)) { using (MySqlCommand query = new MySqlCommand(queryString, gdbc.getConnection())) { query.Prepare(); //Add the agrument names and values NOTE: ORDER MATTERS while (copiedArgs.Count > 0 && copiedArgNames.Count > 0) { Console.Error.Write("Name = " + copiedArgNames.Peek() + " Arg = " + copiedArgs.Peek() + ".\n\n"); query.Parameters.AddWithValue(copiedArgNames.Dequeue(), copiedArgs.Dequeue()); } return(query.ExecuteNonQuery() > 0); } } } catch (Exception e) { excepts.Add(e); return(false); } }
/// <summary> /// General format for running a search query on the guacamole database /// </summary> /// <returns><c>true</c>, if field was found, <c>false</c> otherwise.</returns> /// <param name="queryString">Query string.</param> /// <param name="arg">Argument.</param> /// <param name="excepts">Exceptions.</param> private Queue <string> SearchQuery(string queryString, string arg, ref List <Exception> excepts) { //Stores the Values found from the database Queue <string> queryResults = new Queue <string>(); try { using (GuacamoleDatabaseConnector gdbc = new GuacamoleDatabaseConnector(ref excepts)) { using (MySqlCommand query = new MySqlCommand(queryString, gdbc.getConnection())) { query.Prepare(); //Add the agruments given if found if (arg != null) { query.Parameters.AddWithValue("@input", arg); } //Collect the query result column using (MySqlDataReader reader = query.ExecuteReader()) { while (reader.Read()) { queryResults.Enqueue((string)reader[0]); } } return(queryResults); } } } catch (Exception e) { excepts.Add(e); return(queryResults); } }