Выполнить скалярное имя столбца C#
If put in text box username (a) and password (a) app say invalid column name "a" Last line problem....some help? korisnikId = Int32.Parse(myCommand.ExecuteScalar().ToString());
Что я уже пробовал:
private void prijava() { SqlConnection myConnection = new SqlConnection(cs); String command = "SELECT id FROM osobe_korisnici where korisnicko_ime = " + korisnikTextBox.Text + ""; myConnection.Open(); SqlCommand myCommand = new SqlCommand(command, myConnection); korisnikId = Int32.Parse(myCommand.ExecuteScalar().ToString());
Richard MacCutchan
В чем же проблема?
Goran Bibic
' " + korisnikTextBox.Text + " ' ";
Это, но я решаю проблему
попробуйте решить эту проблему
Goran Bibic
Нужна строка для надписи
метод InitializeComponent();
korisnickoImeLabel.Текст = getKorisnickoIme();
В чем я ошибся?
Запрос в порядке
частная строка getKorisnickoIme()
{
SqlConnection myConnection = новый SqlConnection(cs);
String value = "SELECT ime_prezime FROM osobe_korisnici WHERE id='" + korisnikId + "'";
SqlCommand cmd = new SqlCommand(значение, myConnection);
myConnection.Открыть();
SqlDataReader rdr = cmd.Метода executereader();
значение;
}
Результат в метке есть
Выберите ime_prezime из osobe_korisnici, где id='10'
id равен 10, но мне нужно написать в метке имя и фамилию пользователя (ime_prezime)
Maciej Los
Горан, похоже, ты не хочешь учиться....
Мы уже несколько раз говорили вам, что вы должны использовать параметризованные запросы вместо сцепленной строки, чтобы избежать SQL-инъекции... Но вы по - прежнему игнорируете наши инструкции...
Плохая практика превращает вас в плохого программиста.
Goran Bibic
Я хочу учиться
Maciej Los
Так почему же вы игнорируете наши комментарии?
Richard MacCutchan
Посмотри на этот код. Вы создаете оператор SELECT в value, а затем возвращаете его из своего метода. Вы игнорируете результаты вызова ExecuteReader.
Goran Bibic
Я решаю эту проблему в одиночку...
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
Goran Bibic
Спасибо
RedDk
Если вы действительно хотите использовать эту строку конкатенации, вы можете это сделать, и это очень просто. Но что касается изучения TSQL и разбирания в строковых операторах, которые будут иметь приоритет в этом случае, то лучше всего получить SQL Server Express с Advanced (stuff), установить его ... а также скачать BOL (Book-on-Line) для любой версии, которую вы выберете.
Выполнение SQL-вещей, таких как использование строки подключения для sheboogle базы данных, прекрасно с C# ... не поймите меня неправильно. Но документация TSQL в BOL не может быть превзойдена. (Кроме того, пока я думаю об этом, загрузите образец данных AdventureWorks ... есть много этого примера, разбросанного по всему болу, и нет ничего, что они там не делают, что не может быть сделано любым новичком, решительно взявшим этот навык.)