Здесь запрос дыры:
SELECT idperson, name
FROM movie.people
WHERE idperson LIKE '23'
OR idperson LIKE '1'
OR idperson LIKE '24'
OR idperson LIKE '25'
OR idperson LIKE '26'
OR idperson LIKE '27'
OR idperson LIKE '28'
OR idperson LIKE '29'
ORDER BY FIND_IN_SET(idperson,'23,1,24,25,26,27,28,29');
Ну, Вы могли запустить новый процесс cmd.exe и использовать stdio и stdout, чтобы отправить и получить данные.
ProcessStartInfo psi = new ProcessStartInfo("cmd.exe")
{
RedirectStandardError = true,
RedirectStandardInput = true,
RedirectStandardOutput = true,
UseShellExecute = false
};
Process p = Process.Start(psi);
StreamWriter sw = p.StandardInput;
StreamReader sr = p.StandardOutput;
sw.WriteLine("Hello world!");
sr.Close();
Больше информации о MSDN.
Единственная консоль присоединена к любому данному процессу. Так короче говоря Вы не можете. Но существуют способы "фальсифицировать его"
Следующее исчерпывает зависящее от приложения количество консолей и хранит сумму и параметры для консоли в Строковом Словаре, который затем циклично выполняется для генерации необходимого количества порожденных консольных приложений. Вам только был бы нужен материал процесса, только меча икру один, конечно.
//Start looping dic recs and firing console
foreach (DictionaryEntry tests in steps)
{
try
{
Process runCmd = new Process();
runCmd.StartInfo.FileName = CONSOLE_NAME;
runCmd.StartInfo.UseShellExecute = true;
runCmd.StartInfo.RedirectStandardOutput = false;
runCmd.StartInfo.Arguments = tests.Value.ToString();
if (cbShowConsole.Checked)
{
runCmd.StartInfo.CreateNoWindow = true;
runCmd.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
}
else
{
runCmd.StartInfo.CreateNoWindow = false;
runCmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
}
runCmd.Start();
}
catch (Exception ex)
{
string t1 = ex.Message;
}
}
Обратите внимание, что это предназначается или для выполнения скрытый (CreateNoWindow) или видимый.