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

Добавление данных в разные таблицы

23.01.2014, 23:41. Показов 5600. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем привет. В си шарп я делал добавление данных в одну таблицу, вот таким образом.

C#
1
2
3
4
5
6
 OleDbCommand InsCom = new OleDbCommand("INSERT INTO Пистолеты (Код, Название, [Калибр, мм], [Кол-во патронов, шт], [Длина, мм],[Масса, кг],[Прицельная дальность, м],[Страна производства]) VALUES (" + Convert.ToInt32(textBox1.Text) + ", '" + textBox2.Text + "'," + Convert.ToInt32(textBox3.Text) + "," + Convert.ToInt32(textBox4.Text) +
               "," + Convert.ToInt32(textBox5.Text) + "," + Convert.ToInt32(textBox6.Text) + ","
                + Convert.ToInt32(textBox7.Text) + ",'" + textBox8.Text + "')", con);
            if (InsCom.ExecuteNonQuery() == 1)
                MessageBox.Show("Сведения успешно добавлены", "Добавление",
                    MessageBoxButtons.OK);
Теперь мне нужно чтобы с одной формы данные разносились в 6 таблиц. И во всех 6 таблицах есть 4 одинаковых поля (Табельный номер, фамилия, имя, отчество). На форму я кинул textbox-ы и теперь нужно когда их заполняешь, нажимаешь на кнопку и данные разносятся по всем таблицам.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.01.2014, 23:41
Ответы с готовыми решениями:

Добавление данных из одной формы в разные таблицы
Уважаемые гуру Access, помогите плиз. Задача - надо из одной (а может двух - ?) формы добавить информацию в разные, но связанные между...

Вывод данных из таблицы на разные страницы
Через форму загружаю данные в базу а оттуда вывожу на страницу сайта. Но мне надо сделать так, чтобы из этой таблицы выводить данные на...

Вывод данных из таблицы на разные адреса
Как сделать чтобы из одной базы выводить данные на разные адреса-страницы, чтобы распределять материал по темам?

13
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
24.01.2014, 04:56
А в чем вопрос? Я только повествование вижу. Раз вы без проблем смогли создать одну комманду, я думаю, что у вас не должно возникнуть проблем, чтобы создать 6 комманд, различающихся только названием таблицы, и выполнить их последовательно.
0
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 66
24.01.2014, 18:19  [ТС]
проблема в том что я не могу сделать так, чтобы табельный номер, фамилия, имя, отчество вводились в одну форму, а по нажатию кнопки разносились в 6 таблиц.
0
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 66
27.01.2014, 12:47  [ТС]
через какой оператор можно перечислить название таблиц, и вообще возможно ли это ???
0
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
27.01.2014, 16:54
List<string>, заполненный названиями таблиц, которые в этом контексте нужно перечислить.
0
 Аватар для Павлик Морозов
138 / 137 / 42
Регистрация: 26.10.2012
Сообщений: 443
27.01.2014, 23:55
ДЕСАНТНИК, зачем в 6ти таблицах хранить идентичные данные? Сделай отдельную таблицу в которой у тебя будут поля Табельный номер, фамилия, имя, отчество. Одно из них назначаешь первичным ключом, например табельный номер, или отдельное поле сделать, ID например. В остальных таблицах вместо 4х делаешь одно поле с ограничением Foreign Key и ссылкой на описанную выше таблицу. При добавлении данных тебе не надо постоянно все поля заносить. Указываешь только поле, являющееся идентификатором.
0
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 66
29.01.2014, 19:01  [ТС]
Павлик Морозов, понимаете, я делаю программу для отдела кадров, и мне нужно чтобы во всех 6 таблицах присутствовал табельный номер, фамилия, имя, отчество.

Добавлено через 2 минуты
kodv, при добавлении одинаковых данных в разные таблицы нужно перечислить эти таблицы, через какой оператор это можно сделать и как ?
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
29.01.2014, 19:12
Цитата Сообщение от ДЕСАНТНИК Посмотреть сообщение
нужно перечислить эти таблицы, через какой оператор это можно сделать и как ?
Почему вы решили, что есть такой оператор? В соответствии с описанием оператора INSERT вставка производится либо в одну таблицу, либо в одно представление. Я же вам написал, что нужно сделать: продублируйте ваш код 6 раз, вставьте туда нужные вам названия таблиц и радуйтесь вставки данных в 6 разных таблиц. Если считаете, что это не красиво, то оберните это в метод, куда будет передаваться название таблицы и вызовите этот метод 6 раз подряд, или в цикле.
0
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 66
30.01.2014, 17:50  [ТС]
kodv, То есть типо вот так

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 private void button1_Click(object sender, EventArgs e)
        {
            OleDbCommand InsCom = new OleDbCommand("INSERT INTO [Личное дело] ([Табельный номер], Фамилия, Имя, Отчество) VALUES (" + Convert.ToInt32(textBox1.Text) + ", '" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')", con);
            if (InsCom.ExecuteNonQuery() == 1)
                MessageBox.Show("Сведения успешно добавлены", "Добавление",
                    MessageBoxButtons.OK);
        }
         {
            OleDbCommand InsCom = new OleDbCommand("INSERT INTO [Семья] ([Табельный номер], Фамилия, Имя, Отчество) VALUES (" + Convert.ToInt32(textBox1.Text) + ", '" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')", con);
            if (InsCom.ExecuteNonQuery() == 1)
                MessageBox.Show("Сведения успешно добавлены", "Добавление",
                    MessageBoxButtons.OK);
        }
Но выбивает ошибки.
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
10.02.2014, 05:55
Цитата Сообщение от ДЕСАНТНИК Посмотреть сообщение
нам азы с# дали
Меня как раз ваши азы и выбесили. Ладно, скопировать можно как угодно. Но самостоятельно не понять, в чем главная ошибка вашего кода, который вы сюда запостили ?..
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Закрытый метод, который, скорее всего, является обрабочтиком события button1.Click.
private void button1_Click(object sender, EventArgs e)
        {
            OleDbCommand InsCom = new OleDbCommand("INSERT INTO [Личное дело] ([Табельный номер], Фамилия, Имя, Отчество) VALUES (" + Convert.ToInt32(textBox1.Text) + ", '" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')", con);
            if (InsCom.ExecuteNonQuery() == 1)
                MessageBox.Show("Сведения успешно добавлены", "Добавление",
                    MessageBoxButtons.OK);
        }
//Конец метода button1_Click
 
// А ДАЛЕЕ ЧТО ЗА БЛОК?
// Нельзя просто так вставить в класс блок операторов.
// Любой блок операторов должен находится внутри метода в любой вариации (метод, аксессор, индексатор)
// Нахождение здесь блока операторов и бессмыслено и противоречит синтаксису C#.
// И ЭТО АЗЫ!!!
         {
            OleDbCommand InsCom = new OleDbCommand("INSERT INTO [Семья] ([Табельный номер], Фамилия, Имя, Отчество) VALUES (" + Convert.ToInt32(textBox1.Text) + ", '" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')", con);
            if (InsCom.ExecuteNonQuery() == 1)
                MessageBox.Show("Сведения успешно добавлены", "Добавление",
                    MessageBoxButtons.OK);
        }
Я сообщение с таким куском кода воспринял как неуважение к собседеникам, от которых вы ждете помощи. Поэтому, будьте добры, если проблема еще не решена, исправьте код самостоятельно, чтобы он, по крайней мере, соответствовал синтаксису C#. И если программа не заработает, то тогда постите сюда.
0
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 66
03.03.2014, 01:09  [ТС]
kodv, извините пожалуйста, просто нам дали 5 готовых кодов и всё, сказали что нам это не пригодится. А за 4 месяца до диплома объявляют нам что диплом мы должны написать на си шарп. Про асы я преувеличил. А сейчас мне действительно очень нужна Ваша помощь..
Буду буду очень признателен за помощь. Извините если что-то не так......
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
03.03.2014, 04:23
ДЕСАНТНИК, Я имел ввиду что то типа:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
private void button1_Click(object sender, EventArgs e)
{
// Первая комманда
    using(OleDbCommand InsCom = new OleDbCommand("INSERT INTO [Личное дело] ([Табельный номер], Фамилия, Имя, Отчество) VALUES (" + Convert.ToInt32(textBox1.Text) + ", '" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')", con))
    {
        if (InsCom.ExecuteNonQuery() == 1)
            MessageBox.Show("Сведения успешно добавлены", "Добавление", MessageBoxButtons.OK);
    }
// Вторая комманда
    using(OleDbCommand InsCom = new OleDbCommand("INSERT INTO [Семья] ([Табельный номер], Фамилия, Имя, Отчество) VALUES (" + Convert.ToInt32(textBox1.Text) + ", '" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')", con))
    {
        if (InsCom.ExecuteNonQuery() == 1)
            MessageBox.Show("Сведения успешно добавлены", "Добавление", MessageBoxButtons.OK);
    }
// Третья комманда
    using(OleDbCommand InsCom = new OleDbCommand("INSERT INTO [Таблица 3] ([Табельный номер], Фамилия, Имя, Отчество) VALUES (" + Convert.ToInt32(textBox1.Text) + ", '" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')", con))
    {
        if (InsCom.ExecuteNonQuery() == 1)
            MessageBox.Show("Сведения успешно добавлены", "Добавление", MessageBoxButtons.OK);
    }
// Четвертая комманда
    using(OleDbCommand InsCom = new OleDbCommand("INSERT INTO [Таблица 4] ([Табельный номер], Фамилия, Имя, Отчество) VALUES (" + Convert.ToInt32(textBox1.Text) + ", '" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')", con))
    {
        if (InsCom.ExecuteNonQuery() == 1)
            MessageBox.Show("Сведения успешно добавлены", "Добавление", MessageBoxButtons.OK);
    }
// Пятая комманда
    using(OleDbCommand InsCom = new OleDbCommand("INSERT INTO [Таблица 5] ([Табельный номер], Фамилия, Имя, Отчество) VALUES (" + Convert.ToInt32(textBox1.Text) + ", '" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')", con))
    {
        if (InsCom.ExecuteNonQuery() == 1)
            MessageBox.Show("Сведения успешно добавлены", "Добавление", MessageBoxButtons.OK);
    }
// Шестая комманда
    using(OleDbCommand InsCom = new OleDbCommand("INSERT INTO [Таблица 6] ([Табельный номер], Фамилия, Имя, Отчество) VALUES (" + Convert.ToInt32(textBox1.Text) + ", '" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')", con))
    {
        if (InsCom.ExecuteNonQuery() == 1)
            MessageBox.Show("Сведения успешно добавлены", "Добавление", MessageBoxButtons.OK);
    }
}
1
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 66
05.03.2014, 00:24  [ТС]
kodv, спасибо огромное вот мне главное за что-то зацепиться а дальше я разберусь.Спасибо огромное !!!!

Добавлено через 23 часа 20 минут
kodv, а можно ли как-то обойтись без вспомогательных окон типа
C#
1
2
if (InsCom.ExecuteNonQuery() == 1)
            MessageBox.Show("Сведения успешно добавлены", "Добавление", MessageBoxButtons.OK);
а то если добавлять данные в 7 таблиц, то 7 раз нужно будет подтвердить кнопкой ОК.
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
05.03.2014, 03:03
ДЕСАНТНИК, я просто скопировал код, почти без переработки. Далее уже ваше дело. Хотите, выводите сообщение для каждой таблицы, хотите - одно на все таблицы. Я бы вообще такое сообщение выводить не стал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.03.2014, 03:03
Помогаю со студенческими работами здесь

Перенос данных из старой БД в новую, все таблицы разные
Здравствуйте! В процессе переделки базы задался вопросом, как же перенести данные старой БД, в новую бд, при условии что все новые таблицы...

Добавление данных в таблицу и удаление данных из таблицы
Всем доброго время суток. Столкнулся с такой проблемой нужно написать программу с помощью которой можно добавлять данные в таблицу и...

Получение данных из textBox с свойством multiline с разных строк в разные поля таблицы
Никак не пойму как сделать что бы в бд добавлялись данные с каждой строки textbox с multiline в разные поля таблицы.Пишу на на C#.

MS Access - запись данных в разные таблицы при заполнении полей (справочников) на форме
Уважаемые гуру MS Access и VBA, плиз, хэлп!! ) Уже кучу уроков прочитала на сайте MS, а также по программированию на VBA, но не нашла...

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru