Модераторы: gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Корректный ли запрос? 
:(
    Опции темы
alir
Дата 2.12.2005, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 19.3.2005

Репутация: нет
Всего: 4



Код

OleDbCommand cmd = new OleDbCommand("INSERT INTO Usdata (BASKET) VALUES (" + lstProduce.SelectedItem.ToString() + ") WHERE NAME=" + name, oleDbConnection2);
oleDbConnection2.Open();
cmd.ExecuteNonQuery();
oleDbConnection2.Close();


Ошибка:
Цитата
Syntax error (missing operator) in query expression 'данные'.



Вроде запрос корректный: пытаюсь писать данные из листбокса в ячейку, которая находится в столбце BASKET по имени name.

Поправте, если запрос неверен.

Можно ли сделать аналогичное действие не используя command, а применяя dataset?
PM MAIL ICQ   Вверх
arilou
Дата 2.12.2005, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 4
Всего: 61



alir
Похоже, что должно быть так:

WHERE NAME='" + name + ''",

т.е. строку надо брать в одиночные кавычки.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Domestic Cat
Дата 2.12.2005, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 1
Всего: 172



Точнее
Код

"INSERT INTO Usdata (BASKET) VALUES (' " + lstProduce.SelectedItem.ToString() + " ') WHERE NAME=' " + name + " ' "

все стринги должны быть в кавычках



--------------------

PM   Вверх
HalkaR
Дата 2.12.2005, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



Строки в sql -запросах надо ставить в кавычках
Код

OleDbCommand cmd = new OleDbCommand("INSERT INTO Usdata (BASKET) VALUES ('" + lstProduce.SelectedItem.ToString() + "') WHERE NAME='" + name, oleDbConnection2)+"'";
oleDbConnection2.Open();
cmd.ExecuteNonQuery();
oleDbConnection2.Close();

PM MAIL   Вверх
arilou
Дата 2.12.2005, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 4
Всего: 61



ХАХА smile Сколько у нас профи в SQL'е оказывается smile
Добавлено @ 14:16
Особенно мне понравилось что HalkaR и Domestic Cat в одну и ту же секунду запостили ответ smile


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Empirik
Дата 2.12.2005, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 28.10.2005
Где: Россия, Пермь

Репутация: 1
Всего: 1



Господа, либо я тупой либо одно из двух. Но я почему-то не понимаю, какого smile слвово WHERE встречается в инструкции insert. Может мне кто объеснить смысл этого предложения.
Помоему это вопрос из области языка SQL.

В общем лекарство такое, убери WHERE и все будет замечательно smile

Это сообщение отредактировал(а) Empirik - 2.12.2005, 16:03
--------------------
Постоянно удивляюсь человеческой фантазии напридумывают гаджетов
PM MAIL WWW ICQ   Вверх
Neitron
Дата 2.12.2005, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

Репутация: нет
Всего: 5



Я хотел бы тоже это узнать))))


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
alir
Дата 2.12.2005, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 19.3.2005

Репутация: нет
Всего: 4



Domestic Cat
HalkaR
arilou
Код

OleDbCommand("INSERT INTO Usdata (BASKET) VALUES ('" + lstProduce.SelectedItem.ToString() + "') WHERE NAME='" + nameFile +"'", oleDbConnection2);

ошибка:
Цитата
Missing semicolon (;) at end of SQL statement.

Что то не пойму, почему он требует вставить ";"....

Empirik
Цитата
В общем лекарство такое, убери WHERE и все будет замечательно
Конечно, если убрать условие WHERE, то заработает, но не то, что нужно, так как мне надо вставить текст в строку по имени!

Повторюсь:
можно ли сделать аналогичное действие не используя command, а применяя dataset?

Это сообщение отредактировал(а) alir - 2.12.2005, 17:08
PM MAIL ICQ   Вверх
Exception
Дата 2.12.2005, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 2
Всего: 186



Окончательный вариант
Код

"INSERT INTO Usdata (BASKET, NAME) VALUES (' " + lstProduce.SelectedItem.ToString() + " ',   ' " + name + "')

Тормозим smile
PM   Вверх
alir
Дата 2.12.2005, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 19.3.2005

Репутация: нет
Всего: 4



Run-time error
Дык он жалуется на перезапись.

Это сообщение отредактировал(а) alir - 2.12.2005, 17:36
PM MAIL ICQ   Вверх
Exception
Дата 2.12.2005, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 2
Всего: 186



Цитата(alir @ 2.12.2005, 18:33)
Дык он жалуется на перезапись.

Куда? Президенту что ли?
Какая ошибка, где вылетает?
Насчёт перезаписи: может у тебя NAME уникальный, а в коде тот же повторяется. Проверь свой код
PM   Вверх
alir
Дата 2.12.2005, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 19.3.2005

Репутация: нет
Всего: 4



Run-time error
Цитата
Какая ошибка, где вылетает?

Ошибка:
Цитата
The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship.  Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.


Цитата
Насчёт перезаписи: может у тебя NAME уникальный, а в коде тот же повторяется.

NAME - ключевое поле.


p.s. попробую UPDATE

Это сообщение отредактировал(а) alir - 2.12.2005, 18:11
PM MAIL ICQ   Вверх
Дрон
Дата 2.12.2005, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 5
Всего: 93



alir
smile smile smile smile smile smile smile smile smile

Теперь по делу.

INSERT -- вставляет НОВУЮ строку в таблицу.

Тебе же, как я понял, нужно изменить СУЩЕСТВУЮЩУЮ строку.

Т.е. писать надо так:
UPDATE Usdata SET BASKET = '" + lstProduce.SelectedItem.ToString() + "' WHERE NAME='" + nameFile +"'"

ЗЫ: Ты хоть что-нибудь по SQL почитай, прежде чем такую чушь писать. Самому-то не стыдно?

Изначально мне не дали запостить это сообщение с ошибкой: Количество смайликов в сообщении превышает норму допущенного. Уменьшите количество смайликов

Это сообщение отредактировал(а) Дрон - 2.12.2005, 18:14


--------------------
Да. Именно так.
PM   Вверх
arilou
Дата 2.12.2005, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 4
Всего: 61



Ой блин как мы все лопухнулись smile


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
alir
Дата 2.12.2005, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 19.3.2005

Репутация: нет
Всего: 4



Дрон
Цитата
Ты хоть что-нибудь по SQL почитай, прежде чем такую чушь писать. Самому-то не стыдно?

Стыдно, хотя все подправляли ненужный код, нежели отвечали на сам вопрос:
Цитата
пытаюсь писать данные из листбокса в ячейку, которая находится в столбце BASKET по имени name.


Это сообщение отредактировал(а) alir - 2.12.2005, 18:19
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0581 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.