Как исправить «Неверное имя столбца» исключение SQL на MsSQL - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь передать имя столбца и значение для проверки в коде во время выполнения.Однако я получаю:

«Неверное имя столбца»

Исключение.Код выглядит следующим образом:

cmd = new SqlCommand();
con.Open();
cmd.Connection = con;
cmd.CommandText = "INSERT INTO rezervasyon (Ad,Soyad,TelefonNo,OdaSayisi,KişiSayisi," +
                          "Ucret,Acıklama,GirisTarihi,CikisTarihi,KayitTarihi) VALUES " +
                          "(" + isim + ",'" + soyisim + "','" + telefon + "'," +
                          "'" + oda_sayisi + "','" + kisi_sayisi + "','" + ucret + "'," +
                          "'" + aciklama + "','" + giris_tar + "','" + cikis_tar + "'," +
                          "'" + current_tarih + "')";
cmd.ExecuteNonQuery(); 
con.Close();

1 Ответ

0 голосов
/ 30 мая 2018

Вы пропустили одну цитату здесь " + isim + ", и она должна быть '" + isim + "'.Однако вы всегда должны использовать параметризованные запросы , чтобы избежать SQL-инъекций , а также чтобы избавиться от ошибок такого рода.

cmd.CommandText = "INSERT INTO rezervasyon (Ad,Soyad,TelefonNo,OdaSayisi,KişiSayisi,Ucret" +
                  ",Acıklama,GirisTarihi,CikisTarihi,KayitTarihi) " +
                  "VALUES (@isim, @soyisim , ...)";
cmd.Parameters.AddWithValue("@isim", isim);
cmd.Parameters.AddWithValue("@soyisim", soyisim);
//Other parameters

Хотя укажите тип напрямую и используйтесвойство Value лучше, чем AddWithValue:

cmd.Parameters.Add("@isim", SqlDbType.VarChar).Value = isim;

Можем ли мы прекратить использовать AddWithValue () уже?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...