如何使用 ASP.NET 在 Access 数据库中插入关系数据
Posted
技术标签:
【中文标题】如何使用 ASP.NET 在 Access 数据库中插入关系数据【英文标题】:How to insert relational data in Access database using ASP.NET 【发布时间】:2011-10-12 21:15:37 【问题描述】:我有两个关系表:Profiles
表包含 3 种用户角色(经理、开发人员、普通用户)和 Users
表,其中包含有关用户及其角色 ID(Profile_ID 字段)的信息Access 2010
数据库。
我在ASP.NET
中创建了一个 Web 表单,它应该只是注册用户、询问他们的姓名、在下拉列表中选择他们的角色并将其全部插入 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 ('" & Me.txtNome.Text & "', " & Me.ddRoles.SelectedIndex & ")"
.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'.
【问题讨论】:
您不能添加或更改记录,它们必须在“Profiles”表中有相关记录。 【参考方案1】:更改您的命令文本以采用下拉列表的 SelectedValue 而不是所选索引。
.CommandText = "INSERT INTO Users (nome, Profile_ID) VALUES ('" & Me.txtNome.Text & "', " & Me.ddRoles.SelectedValue & ")"
如果这不起作用,您需要确保下拉列表正确绑定到角色名称/ID。
【讨论】:
它现在可以工作了.. 但它只创建具有一个配置文件的记录(确切地说,是 ID 号为 5 的普通用户配置文件)。虽然 html 看起来是正确的:Common User 赋值为 5,Developer 赋值为 value 6,Manager 赋值为 value 7 这是我填充下拉列表并尝试插入数据库的代码:pastebin.com/a2XbqaAY 你每次都绑定页面加载的下拉菜单吗?如果是这样,您每次重新绑定数据时都会丢失所选值。【参考方案2】:插入表名(papercode,paper type,semster,dato)values('" & textbox1.text & "', '" & dropdownlist1.text &"')
【讨论】:
以上是关于如何使用 ASP.NET 在 Access 数据库中插入关系数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 asp.net 从客户端读取 ms-access 数据库文件
如何使用 ASP.Net 数据源通过 ODBC DSN 连接到 Access 数据库?
如何通过 ASP.net 网站将新条目插入 Access db 表?