У меня есть два массива:
string[] counts = { "Count 1", "Count 2", "Count 3", "Count 4" }
string[] controls = { "comboBox_username", "textBox_password" }
Мне нужно их сместить друг с другом, чтобы в итоге получилось:
string[] query = { "Count 1 = comboBox_username", "Count 2 = textBox_password", "Count 3", "Count 4" }
Поясню немного. Я хочу создать метод для выполнения Sql команды через метод с аргументами. У меня есть метод:
public static void Compare(Form @this, string table, string[] @counts, string[] @control)
{
//Объединение двух массивов
//text1 должен выглядеть таким образом string text1 = "Count1 = comboBox.Text.Trim() AND Count2 = textBox.Tex.Trim()";
string query = "SELECT " + string.Join(", ", @counts) + " FROM " + table + " WHERE " + text1 + ""; //Строка запроса
// Команда запроса
}
Инициализация метода: Command это класс, где находится метод.
Command.Compare(Controls.Owner.FindForm(), "Name table", new string[] { "Count 1", "Count 2", "Count 3", "Count 4" }, new string[] { "comboBox_username", "textBox_password" });
Ваш подход чреват SQL injection, поскольку вы отправляете прямиком в бд данные, введённые пользователем. Никогда, запомните, никогда нельзя доверять данным, введённым пользователем
Используйте ORM для работы с базой данных вместо прямых запросов.
Как сливать массивы, уже объяснено на этом же сайте.
Если подходить к вашей задаче формально, то подойдёт что-то такое:
var result = counts.Zip(controls, (l, r) => $"{l} = {r}")
.Concat(counts.Skip(controls.Length))
.Concat(controls.Skip(counts.Length));
Но в реальности, как говорится более подробно в соседнем ответе, конкатенировать строку ввода пользователя в SQL-запрос — очень плохая идея. Стоит юзеру ввести в textBox_password
значение наподобие xxx OR 1 = 1
, и подойдёт любой пароль.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый день, имеется список объектов (Photo, Video, Gallery, PhotoMode, VideoMode)Как можно получить галерею по её имени? Пока что идея такая:
Есть структура данных (С#) необходимо принимая данные из SerialPort записать их в структуру побайтно
Использую RichTextBoxНужно, что бы каждая новая строка была своего цвета, например: