#asp.net #vb.net #visual-studio #ms-access
#asp.net #vb.net #visual-studio #ms-access
Вопрос:
У меня есть две реляционные таблицы: Profiles
таблица, которая содержит 3 вида пользовательских ролей (менеджер, разработчик, обычный пользователь) и Users
таблица, которая содержит информацию о пользователе и его идентификаторе ролей (поле Profile_ID) в Access 2010
базе данных.
Я создал веб-форму, в ASP.NET
которой следует просто регистрировать пользователей, запрашивая их имена, выбирая их роли в выпадающем списке и вставляя все это в базу данных Access. Как в следующем коде:
Dim cs As String = ConfigurationManager.ConnectionStrings("Access 2010").ConnectionString
Dim cn As New OleDbConnection(cs)
Dim cmd As New OleDbCommand
With cmd
.CommandText = "INSERT INTO Users (nome, Profile_ID) VALUES ('" amp; Me.txtNome.Text amp; "', " amp; Me.ddRoles.SelectedIndex amp; ")"
.Connection = cn
.Connection.Open()
.ExecuteNonQuery()
.Connection.Close()
.Dispose()
End With
cn.Dispose()
Бывает, что я не могу вставить в базу данных, потому что они связаны друг с другом, это выдает ошибку. На самом деле, мне просто нужно вставить данные в Users
таблицу, потому что роли фиксированы. Как я могу это сделать?
Редактировать
Ошибка, которую я получаю, You can not add or change records, it is necessary that they have a related record in table 'Profiles'.
Комментарии:
1. Вы не можете добавлять или изменять записи, необходимо, чтобы они имели связанную запись в таблице «Профили».
Ответ №1:
Измените текст вашей команды, чтобы использовать SelectedValue выпадающего списка вместо выбранного индекса.
.CommandText = "INSERT INTO Users (nome, Profile_ID) VALUES ('" amp; Me.txtNome.Text amp; "', " amp; Me.ddRoles.SelectedValue amp; ")"
Если это не сработает, вам нужно убедиться, что выпадающий список правильно привязан к имени / идентификатору роли.
Комментарии:
1. Теперь это сработало .. но он создает только записи с одним профилем (общий профиль пользователя, который имеет идентификационный номер 5, если быть точным). Хотя HTML кажется правильным: обычному пользователю присваивается значение 5, разработчику присваивается значение 6, а менеджеру присваивается значение 7
2. вот мой код, который заполняет выпадающий список и пытается вставить в базу данных: pastebin.com/a2XbqaAY
3. вы каждый раз привязываете выпадающий список при загрузке страницы? Если это так, вы потеряете выбранное значение каждый раз, когда будете повторно привязывать его к данным.
Ответ №2:
вставить в tablename (papercode, paper type, semster, dato) значения (‘» amp; textbox1.text amp; «‘, ‘» amp; dropdownlist1.text amp;»‘)