Richard Deeming
Как уже указывали другие, ваш код уязвим для SQL-инъекций. Но ты уже знал это! :)
Я думаю, что вы просто хотели пример того, как исправить эту уязвимость:
using (SqlConnection con = new SqlConnection(myConnectionString))
{
con.Open();
// INSERT command:
using (SqlCommand command = new SqlCommand("INSERT INTO [next] (id, time, clock, username, Name_Arabic, gender) VALUES (@id, @time, @clock, @username, @Name_Arabic, @gender)", con))
{
// TODO: Convert the text to an appropriate type, if necessary:
command.Parameters.AddWithValue("@id", txtCIVILIDD.Text);
command.Parameters.AddWithValue("@time", txttime.Text);
command.Parameters.AddWithValue("@clock", txtclock.Text);
command.Parameters.AddWithValue("@username", txtusername.Text);
command.Parameters.AddWithValue("@Name_Arabic", txtName_Arabic.Text);
command.Parameters.AddWithValue("@gender", CBgender.Text);
command.ExecuteNonQuery();
}
// SELECT command:
using (SqlCommand command = new SqlCommand("SELECT * FROM [next] WHERE id = @id", con))
{
// TODO: As above, convert the text to an appropriate type if necessary:
command.Parameters.AddWithValue("@id", txtCIVILIDD.Text);
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataSet data = new DataSet();
adapter.Fill(data);
// TODO: Do something with the loaded data here...
}
}
NB: Как указано в комментариях, вы можете столкнуться с проблемами, если текст в ваших элементах управления не может быть преобразован в соответствующие типы для столбцов. При необходимости вам нужно будет проверить текст и/или преобразовать его в соответствующий тип перед добавлением параметров.
Немного легкого чтения для вас:
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[
^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[
^]
Шпаргалка по параметризации запросов | OWASP[
^]
MadMyche
Вы, конечно, правы, но когда это будет скопировано/вставлено; плакат может прочитать комментарии и соответствующим образом скорректировать их. Или попросите нас настроить его