Давайте посмотрим на ваш код:
string queryReg = "INSERT INTO uporabnik2(uporabnisko_ime, geslo, email) " +
"VALUES(" + RegistracijaUporabnisko + ", " + RegistracijaGeslo + ", " + RegistracijaMail + ")";
using (SqlCommand command = new SqlCommand(queryReg, con))
{
con.Open();
command.ExecuteNonQuery();
con.Close();
}
Хорошо, поэтому, если RegistracijaUporabnisko
имеет значение Rok, RegistracijaGeslo
значение Rok и RegistracijaMail
значение Rok @ home .. что означает ваша строкатеперь как выглядит?ну
string queryReg = "INSERT INTO uporabnik2(uporabnisko_ime, geslo, email) VALUES(Rok,Rok,Rok@home)";
Рок, который он будет искать, это поле, а не значение.Отсюда и недействительный столбец.
Так что, если вы сделали это общепринятым способом
string queryReg = "INSERT INTO uporabnik2(uporabnisko_ime, geslo, email) VALUES(@RegistracijaUporabnisko ,@RegistracijaGeslo ,@email)";
using (SqlCommand command = new SqlCommand(queryReg, con))
{
command.Parameters.AddWithValue("@RegistracijaUporabnisko ", RegistracijaUporabnisko );
command.Parameters.AddWithValue("@RegistracijaGeslo ", RegistracijaGeslo );
command.Parameters.AddWithValue("@email", email);
con.Open();
command.ExecuteNonQuery();
con.Close();
}
Что происходит сейчас?Ну, за кулисами текст вводится с кавычками вокруг него, даты отправляются в соответствующем формате, нумерация всего этого ... обрабатывается для вас.Он защищает вас от инъекций, поэтому, если я введу имя "; drop table uporabnik2
, вы не потеряете стол и т. Д.