如何存储msgbox值来访问VB.net中的数据库?

时间:2014-09-22 12:17:49

标签: vb.net

我想存储"状态"单击是时访问,但是当我单击是时,它显示此错误消息。

**

您无法添加或更改记录,因为相关记录是     表格'用户'。>>

中需要

**

    Private Sub btnContactOwner_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnContactOwner.Click

    If MsgBox("Are you sure want to confirm this room?", MsgBoxStyle.YesNo, "Confirmation") = MsgBoxResult.Yes Then
        status = "Non-Available"
    Else
        status = "Available"



    End If
    con = New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=..\room.accdb")
    con.Open()
    sql = "Insert into room(status)values('" & status & " ')"
    objcmd = New OleDbCommand(sql, con)
    objcmd.ExecuteNonQuery()
    con.Close()

End Sub

1 个答案:

答案 0 :(得分:0)

您正试图在Room表格中创建一行,而您只是为状态列指定了一个值。 您的房间表中有一列' StudentID'对表'用户'有外键约束。要在房间表格中创建一行,您还需要为' StudentID'指定一个值。列。

sql = "Insert into room(status,studentID) values('" & status & "'," & studentID & ")"

其中studentID是Userss表中的有效整数

您可能还想查看parameterised queries

和/或string.Format方法:

sql = String.Format("Insert into room(status,studentID) values('{0}',{1})", status, studentID)