EM_Y Ответов: 3

Количество запросов в таблице базы данных


Я пытаюсь подсчитать количество операций в таблице 1 из базы данных и установить column1 и column2 как исследовательские ключи .
когда я нажимаю кнопку исследования, она показывает мне эту ошибку

"
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) FROM DATABASE.TABLE1 WHERE COLUMN1  = 'KEY1' AN' at line 1
В СТРОКЕ 1"


на этой линии "

int countOERATION = Convert.ToInt32(cmdOPERATION.ExecuteScalar());


"
Я уже использовал этот код раньше с другой таблицей, и он работал правильно !


кто-нибудь получал это раньше?!
Или близко, Спасибо за любую помощь .

Что я уже пробовал:

using (var cmdOPERATION = new MySqlCommand("SELECT  COUNT (*) FROM DATABASE.TABLE1 WHERE COLUMN1  = '" + KEY1 + "' AND COLUMN2 =  '" + KEY2 + "' ;", CONNECTION))
                     {

               int countOPERATION = Convert.ToInt32(cmdOPERATION.ExecuteScalar());                                             }

OriginalGriff

ПОЧЕМУ ТЫ КРИЧИШЬ НА МЕНЯ?
НЕ КРИЧИ. Использование всех заглавных букв считается криком в интернете и грубостью (использование всех строчных букв считается ребячеством). Используйте правильную капитализацию, если хотите, чтобы вас воспринимали всерьез.

EM_Y

Спасибо я это исправлю :)

3 Ответов

Рейтинг:
9

EM_Y

Я попробовал с entity query, и он работает для меня .

baseEntities dc = new baseEntities();

var getcount = dc.table.Where(b => b.column1 == key1 && b.column2 == key2).Count(); 
                            int count = Convert.ToInt32(getcount);




спасибо всем вам за ваши предложения :)


Рейтинг:
22

OriginalGriff

Здесь есть целый ряд проблем:
1) Никогда не объединяйте строки для построения SQL-команды. Это оставляет вас широко открытыми для случайной или преднамеренной атаки SQL-инъекции, которая может уничтожить всю вашу базу данных. Вместо этого используйте параметризованные запросы.
2) сообщение об ошибке не соответствует вашему коду, как показано на рисунке: оно относится к таблице 1, в то время как ваш код относится к TALE1

Так что проверьте свой код: при угадывании вы пропустили открытие " ("из вашей команды в коде. Но исправьте конкатенацию не только в этом коде, но и во всем вашем приложении - или ваш лучший друг сможет удалить всю вашу БД только для того, чтобы увидеть выражение вашего лица...


Рейтинг:
13

#realJSOP

Не создавайте такие строки запросов. Вы настраиваете себя на SQL-инъекцию. Вместо этого используйте параметризованные запросы.


EM_Y

спасибо, я постараюсь это !
но почему это работает для меня в других таблицах !?