Вставка данных из одной таблицы в другую | MySQL

0

В настоящее время я изучаю vb.net, и я работаю над небольшим тестовым проектом. Дело в том, что у меня пять таблиц:

Вход, где я храню регистрационную информацию для студентов:

IDUser | Name | Surname | Username   | Password
---------------------------------------------
1      | John | Smith   | john.smith | john123

Студенты, где я храню основную информацию о студентах

IDStudent | Name | Surname
--------------------------
1         | John | Smith 

Профессора, где я читаю основные сведения о профессорах

IDProfessor | Name | Surname 
----------------------------
1           | Mike | Petersen

Субъекты, где я храню основную информацию о предметах

IDSubject | SubjectName | ProfessorName
---------------------------------------
1         | Programming | Gary Williams

и для финальной таблицы, в которой мне нужно вставить данные из таблиц выше, у меня есть курсы:

IDCourse | StudentID | SubjectID | ProfessorID
----------------------------------------------
1        | ??        | ???       | ????

Вопрос в том, как вставить данные в таблицу курса из таблиц выше. В настоящее время я использую MySql в качестве моей базы данных, и я создал внешние ключи и связал их с первичными ключами. У меня также есть ComboBox (заполненный предметами из таблицы Subjects), где студент может выбрать тему и нажав кнопку, вставьте ее в таблицу курсов.

  • 0
    Кроме того, вам нужно по-другому взглянуть на нормализацию дизайна БД. Вы дублировали данные между таблицами входа и учениками, а также предметами и преподавателями.
  • 0
    Что касается сохранения паролей, это хорошо для тестового проекта без реальных входов в систему, но для реального приложения вы никогда не сохраните пароли в виде простого текста.
Показать ещё 3 комментария
Теги:

1 ответ

0
Лучший ответ

Используйте DataTable для каждой таблицы и вставляйте данные таблицы из одного в другой. Например:

 Dim con as new MySqlConnection="connectionsstringhere"
 con.open
 Dim cmd as new Mysqlcommand = "Select * from Login",con)

 dim table as new datatable
 Dim adapter as new mysqldataadapter(cmd)
 adapter.filll(table)
 Dim cmd2 as new mysqlcommand("Insert into Courses([student id],[subject id],[Professor id])values(@sid,@sbid,@pid)",con)
 cmd2.parametres.add("@sid",mysqldbtype.nvarchar).Value = table.rows(0)(1)  'here (0) is the column no. and (1) is the cell no.

   cmd2.parametres.add("@sbid",mysqldbtype. nvarchar).Value = table.rows(0)(2)  
 cmd2.executenonquery
 con.close

Следующий код вставляет таблицу Login первые 2 ячейки данных в таблицу Courses.

Обратите внимание, что это всего лишь базовый пример. Вам нужно изменить код на основе ваших требований

UPDATE Я, должно быть, добавил это вчера, но я был немного занят... Однако пусть начнется....

Для каждого столбца в каждой таблице вы можете создать list(of string). Например, создайте StudentnameandID/переменную list(of string) под именем StudentnameandID. Теперь используйте datatable для первых двух таблиц (Student and Professor). Передайте значения ячейки 1 из datatable в List (of string) sub STUDENTNAMEANDID Обязательно добавьте специальный символ, например, запятую (,) после каждого значения... Затем, наконец, вы можете отделить каждое значение от Studentnameandid вы добавлены запятые... Затем for each значения в Studentnameandid вы добавляете данные в свою последнюю таблицу.....

Если вам нужен пример кода для этого, оставьте комментарий, и я добавлю его

  • 0
    Спасибо за ваш ответ, но я уже нашел другое решение. Но это поможет мне в учебном процессе. Еще раз спасибо!
  • 0
    Что такое отличное решение?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню