Рейтинг:
4
Garth J Lancaster
Немногие вопросы
1) Вы не показываете нам никакого полезного кода C#, кроме (2)
2) то, что вы показываете, - это то, что ваш SQL подвержен атакам SQL-инъекций, вместо этого вы должны научиться использовать параметры
3) сам синтаксис инструкции SQL некорректно - вам нужно
DELETE from login.mytable where id IN (23, 54);
TheRealProgrammer
Единственная проблема заключается в том, что когда переменная newusername является обычным числом, например 23, она работает. Когда кто-то пытается ввести 2 идентификатора или двойное число, например 23, 24 или 33,4, он перестает работать.
Я бы не хотел, чтобы пользователь вводил какие-либо "," или что-то в этом роде. Newusername - это текстовое поле.
Garth J Lancaster
затем вы должны санировать свой ввод и действовать соответственно - используя SQL-оператор, который я вам дал, Вы можете иметь
IN (x)
или
IN (x, y)
это довольно легко сделать параметром из вашего текстового поля - но бизнес-правила и проверка должны быть сделаны вами, чтобы соответствовать требованиям
TheRealProgrammer
Я не понимаю, как я могу отформатировать само текстовое поле, чтобы, если кто-то наберет", " или другие символы, оно было удалено.
Например:
InputUserID = " 24,2"
**преобразовать**
OutputUserID = " 242"
Garth J Lancaster
есть несколько способов -
например удалите все нечисловые цифры,
проверка текстового поля,
запретить использование нечисловых клавиш в этом текстовом поле
Я думаю, что есть более серьезная проблема, связанная с тем, что пользователь вводит номер, который он не собирался-возможно, он выбирает запись для удаления из сетки или что-то в этом роде, а затем использует идентификатор из нее
TheRealProgrammer
если (регулярное выражение.IsMatch(modifyIdInput.Текст, "[ ^ 0-9]"))
{
**код**
}
будут делать это. Спасибо!