Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
SQLite

Неправильный запрос

12.12.2017, 14:32. Показов 1318. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, написал код запрос к БД
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SQLiteConnection connection = new SQLiteConnection(connect_db);
 
            connection.Open();
 
            SQLiteCommand command = new SQLiteCommand(String.Format("SELECT name COUNT(*) FROM {0} WHERE name = '{1}'", tablename, name));
 
            int query = command.ExecuteNonQuery();
            connection.Close();
            if (query == 1)
            {
                return true;
            }
 
            return false;
и когда я выполняю выдает ошибку что нету такой команды подскажите что я не правильно делаю
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.12.2017, 14:32
Ответы с готовыми решениями:

Неправильный запрос
Что не так? string name = textBox6.Text; string surname = textBox1.Text; string patronymic =...

OleDbCommandBuilder формирует неправильный запрос (значения равняются ? ? ?)
Здравствуйте, подключаюсь к базе MS Access. oledbAdapter.UpdateCommand = oledbCmdBuilder.GetUpdateCommand(); Создает неправильный...

Неправильный запрос
Привет всем. У меня есть вот такой запрос на выборку данныхSELECT COUNT(*) FROM irbis_order WHERE order_categ = $cat1 OR order_categ =...

19
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
12.12.2017, 14:48
Matroskin_Kot, если тебе нужно получить количество строк, то нужно так:
C#
1
SQLiteCommand command = new SQLiteCommand(String.Format("SELECT COUNT(*) FROM {0} WHERE name = '{1}'", tablename, name));
0
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
12.12.2017, 14:52
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
подскажите что я не правильно делаю
Всё. Неправильный синтаксис запроса. Даже если вы исправите ошибки, метод ExecuteNonQuery всегда вернет 0 для select запроса. Если вам нужно узнать, сколько раз name встречается в таблице, то надо писать
SQL
1
SELECT COUNT(*) FROM...
и вызывать метод command.ExecuteScalar()
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
12.12.2017, 15:53  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Matroskin_Kot, если тебе нужно получить количество строк, то нужно так:
Я написал а как сравнить сколлько он строк вернул ?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
12.12.2017, 16:01
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
а как сравнить сколлько он строк вернул ?
Ответ на этот вопрос уже дал Igr_ok - используй ExecuteScalar() вместо ExecuteNonQuery().
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
12.12.2017, 16:23  [ТС]
Все равно не работает
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SQLiteConnection connection = new SQLiteConnection(connect_db);
 
            connection.Open();
 
            SQLiteCommand command = new SQLiteCommand(String.Format("SELECT COUNT(*) FROM {0} WHERE name = '{1}'", tablename, name));
 
 
            int query =  (int)command.ExecuteScalar();
            connection.Close();
            if (query == 1)
            {
                return true;
            }
 
            return false;
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
12.12.2017, 16:25
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
Все равно не работает
Как именно "не работает"? Описывай проблему целиком и сразу. Не трать зря чужое время.
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
12.12.2017, 16:31
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
if (query == 1)
чувак, зуб даешь, что у тебя ровно одна запись, удовлетворяющая условию?
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
12.12.2017, 16:36  [ТС]
Цитата Сообщение от pincet Посмотреть сообщение
чувак, зуб даешь, что у тебя ровно одна запись, удовлетворяющая условию?
Название: Безымянный.png
Просмотров: 18

Размер: 1.6 Кб
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
12.12.2017, 16:38
Matroskin_Kot, добавь после создания команды
C#
1
command.Connection = connection;
0
Warrior
 Аватар для _exp10der_
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
12.12.2017, 16:40
Matroskin_Kot, Ну так по сообщению видно что вы не связали с командой подключение.
У SQLiteCommand есть конструктор который принимает коннекцию смотри пример:
https://msdn.microsoft.com/en-... x#Examples
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
12.12.2017, 16:52  [ТС]
Цитата Сообщение от _exp10der_ Посмотреть сообщение
Matroskin_Kot, Ну так по сообщению видно что вы не связали с командой подключение.
У SQLiteCommand есть конструктор который принимает коннекцию смотри пример:
https://msdn.microsoft.com/en-... x#Examples
При добавления пользователя в бд после этого кода выдает такое исключение
Миниатюры
Неправильный запрос  
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
12.12.2017, 16:54
try/catch уже осилил?
а так-то, может все-таки хоть одну лекцию взять, да и прочитать? Или соседа по общаге попросить?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
12.12.2017, 16:55
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
выдает такое исключение
Нажми кнопку "Сведения" и посмотри что за исключение и где.
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
12.12.2017, 17:09  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Нажми кнопку "Сведения" и посмотри что за исключение и где.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 private void textBox_pib_Leave(object sender, EventArgs e)
        {
            try
            {
                if (db.ExistsUser(textBox_pib.Text.ToString()) == true)
                {
                    MessageBox.Show("Пользователь есть в бд");
                }
            }
 
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
 
           
        }
Добавлено через 2 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public bool ExistsUser(string name)
        {
            SQLiteConnection connection = new SQLiteConnection(connect_db);
 
            connection.Open();
 
            SQLiteCommand command = new SQLiteCommand(String.Format("SELECT COUNT(*) FROM {0} WHERE name = '{1}'", tablename, name));
 
            command.Connection = connection;
 
            int query =  (int)command.ExecuteScalar();
            connection.Close();
            if (query == 1)
            {
                return true;
            }
 
            return false;
 
        }
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
12.12.2017, 17:09
Matroskin_Kot, к чему этот код? И что за странная манера цитировать и отвечать невпопад?
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
13.12.2017, 11:21  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
к чему этот код? И что за странная манера цитировать и отвечать невпопад?
Подскажите почему код не правильно работает (
0
Эксперт .NET
 Аватар для Usaga
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
13.12.2017, 12:02
Matroskin_Kot, потому, что - гладиолус. Текст ошибки предоставите?
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
13.12.2017, 12:09  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
потому, что - гладиолус. Текст ошибки предоставите?
Заданное приведение является не допустимой
0
Эксперт .NET
 Аватар для Usaga
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
13.12.2017, 12:13
Лучший ответ Сообщение было отмечено Matroskin_Kot как решение

Решение

Matroskin_Kot, в SQLite возвращается long, а не int:

C#
1
long query =  (long)command.ExecuteScalar();
Добавлено через 35 секунд
Цитата Сообщение от Usaga Посмотреть сообщение
в SQLite возвращается long, а не int
Это можно было бы и самому легко посмотреть в отладчике.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2017, 12:13
Помогаю со студенческими работами здесь

неправильный запрос
Помогите разобраться с запросом! пытаюсь списку назначить программно источник строк: Me.Список0.RowSource = "SELECT...

Неправильный запрос
mysql_query("SELECT name FROM Less_now WHERE day_of_week='$l', number_klass='$User_Podpiska_Klass', number_less='$i'") or...

Неправильный запрос
Добрый вечер делаю запрос SELECT SUM(sum_coming) AS OrderTotal FROM coming GROUP by id_project_coming=1 И по идее должно вывести...

неправильный запрос
добрый вечер. ситуация следующая: вывожу данные следующим запросом SELECT shop_items_catalog_item_id as item_id, ...

Неправильный запрос к базе
Вопрос может и избитый и много раз рассматривался, но в моем случае я не пойму в чем ошибка, есть 2 запроса : $q = "SELECT...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru