如何使用 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 表?

在 asp.net 和 Join 语句中连接到 Access 数据库

asp.net网页中如何弹出FORM窗体

使用 MS Access 数据库发布 asp.net