Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/75: Рейтинг темы: голосов - 75, средняя оценка - 4.85
0 / 0 / 1
Регистрация: 27.01.2015
Сообщений: 107

SQL выполнить запрос INSERT INTO

03.05.2015, 17:03. Показов 13952. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!
прошу подсказать с запросом SQL на добавления.
У меня имеются на форме текстовое поле(textBox1) и поля со списком(comboBox1), где я ввожу новые данные и при нажатия добавить(добавляется в базу SQL)
Но проблема в том, например.
База содержит следующие поля
______________________
ID| Название | ID жанр|
-----------------------------
1 | Роза | 2 |
-----------------------------

естественно, к этой таблицы связана другая по ID жанру

______________________
ID жанр | Наименование|
-----------------------------
1 | Боевик |
-----------------------------
2 | Роман |
-----------------------------

а на форме, когда я ввожу в текстовое поле НОВОЕ название, и когда выбираю из списка comboBox1, там отображаются не ID жанр, а НАИМЕНОВАНИЕ, т.е.

Боевик
Роман

и т.д.

мне нужно, чтобы при выбора comboBox1 НАИМЕНОВАНИЕ, добавлялся в базу как ID жанр.
я знаю, что в запросе нужно использовать INSERT INTO.
мне НЕ НУЖЕН код программы, а нужен только ЗАПРОС на добавления
ПОМОГИТЕ кто может, очень прошу((
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.05.2015, 17:03
Ответы с готовыми решениями:

Не работает запрос INSERT к БД SQL Server
Здравствуйте! Помогите, пожалуйста, разобраться с запросом INSERT. Создал базу данных, ввел две записи. Далее пытаюсь вставить запись...

Создать запрос INSERT в базу SQL Server
connect.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\"Отстойник для проектов\"АПЛ_ФРОНТОН.MDF"; ...

Выполнить запрос из файла .sql
Здравствуйте! У меня есть файл .SQL(запросы на заполнение таблицы) и мне нужно этот SQL-Запрос выполнить в Visual Studio для .SDF базы...

3
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18243 / 14157 / 5366
Регистрация: 17.03.2014
Сообщений: 28,846
Записей в блоге: 1
03.05.2015, 18:01
Lina_A, запрос можно так записать (заменив в коде значения на параметры):
T-SQL
1
2
3
4
5
6
7
8
INSERT INTO Movie (
    [Название]
    , [ID Жанр]
)
VALUES (
    'Новое название'
    , (SELECT TOP 1 [ID Жанр] FROM Genre WHERE [Наименование] = 'Боевик')
)
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
03.05.2015, 18:13
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Lina_A Посмотреть сообщение
мне нужно, чтобы при выбора comboBox1 НАИМЕНОВАНИЕ, добавлялся в базу как ID жанр.
В целом запрос будет выглядеть так:
SQL
1
INSERT INTO movie(id, name, genre_id) VALUES(@id, @name, @genre);
Код запроса, скорее всего, так:
C#
1
2
3
4
5
6
using (var cmd = conn.CreateCommand())
{
   cmd.SqlCommand = "INSERT INTO movie(name, genre_id) VALUES(@name, @genre)";
   cmd.Parameters.AddWithValue("name", textBox1.Text);
   cmd.Parameters.AddWithValue("genre", ...);
}
Что конкретно будет передано вторыми параметрами зависит от того, как вы заполняли форму.

Если у вас нормальная объектная модель, то в комбобоксе у вас лежат экземпляры класса Genre. Тогда заполнение параметров будет таким:
C#
1
2
3
4
var genre = comboBox1.SelectedItem as Genre;
if (genre == null) throw...
 
cmd.Parameters.AddWithValue("genre", genre.ID);
Если у вас в коде есть перечисление Genre, значения которого соответствуют значениям ID жанров в базе:
C#
1
2
3
4
5
enum Genre
{
   Action = 1,
   Romance = 2
}
А в комбобоксе лежат экземпляры этого перечисления:
C#
1
2
comboBox1.Items.Add(Genre.Action);
comboBox1.Items.Add(Genre.Romance);
То параметр добавляется так:
C#
1
2
3
var genre = (Genre)comboBox1.SelectedItem;
 
cmd.Parameters.AddWithValue("genre", (int)genre);
Если же вы тупо считывали наименование из базы и заполняли список полем Наименование без какой-либо привязки к ID, то единственный толковый выход у вас — это брать выбранный в списке текст и делать запрос в базу на поиск ID с таким текстом.
SQL
1
SELECT id FROM genres WHERE name = @name;
Надеюсь, при этом у вас в базе на поле наименование стоит уникальный индекс.

Добавлено через 1 минуту
Вариант с выборкой в INSERT, предложенный выше товарищем OwenGlendower, тоже пойдет.
Не знаю, правда, все ли СУБД такое поддерживают.
2
0 / 0 / 1
Регистрация: 27.01.2015
Сообщений: 107
03.05.2015, 19:15  [ТС]
OwenGlendower, благодарю, ваш код запроса очень мне помог :-)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.05.2015, 19:15
Помогаю со студенческими работами здесь

Выполнить запрос SQL по нажатию кнопки
Доброго времени суток, уважаемые форумчане ! такая проблема. я написал запрос SQL. нужно что бы при нажатии на кнопку в форме, созданной...

Как выполнить простой SELECT запрос с помощью Linq to SQL?
class Program { static SqlConnection conn; static void Main(string args) { try ...

Есть ли шаблон по которому можно выполнить любой SQL запрос?
подскажите есть ли шаблон по которому можно выполнить любой SQL запрос.... К примеру в этой коде MySqlCommand cmdSel = new...

SQL запрос insert into
Добрый день форумчане. Нужна ваша помощь есть таблица в базе костюмы Как мне сделать запрос insert into в отдельном классе через...

Sql запрос insert
Я студент и впервые пишу программу для ASP, Мне нужно сделать по лабораторной страницу для добавления,удаление, редактирование записей в БД...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru