【发布时间】:2011-01-14 19:34:14
【问题描述】:
我很确定这是一个基本的语法错误,我是新手,基本上是通过反复试验来解决问题...我正在尝试将文本框中的数据插入 Access 数据库,其中主键字段位于tableCourse 是前缀和 course_number。它不断给我“没有为一个或多个必需参数提供值”错误。这是我的代码隐藏:
Protected Sub Wizard1_FinishButtonClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles Wizard1.FinishButtonClick
'Collect Data
Dim myDept = txtDept.Text
Dim myFirst = txtFirstName.Text
Dim myLast = txtLastName.Text
Dim myPrefix = txtCoursePrefix.Text
Dim myNum = txtCourseNum.Text
'Define Connection
Dim myConn As New OleDbConnection
myConn.ConnectionString = AccessDataSource1.ConnectionString
'Create commands
Dim myIns1 As New OleDbCommand("INSERT INTO tableCourse (department, name_first, name_last, prefix, course_number) VALUES (@myDept, @myFirst, @myLast, @myPrefix, @myNum)", myConn)
'Execute the commands
myConn.Open()
myIns1.ExecuteNonQuery()
End Sub
编辑:我的 AccessDataSource 中有参数,有没有办法使用这些参数?对不起,如果这是一个愚蠢的问题,我还在学习这些东西,它真的让我很困惑......
编辑:不太确定要使用哪个答案,哈哈……我试过这个:
Dim myIns1 As New OleDbCommand("INSERT INTO tableCourse (department, name_first, name_last, prefix, course_number) VALUES (?, ?, ?, ?, ?)", myConn)
myIns1.Parameters.AddWithValue("@myDept", myDept)
myIns1.Parameters.AddWithValue("@myFirst", myFirst)
myIns1.Parameters.AddWithValue("@myLast", myLast)
myIns1.Parameters.AddWithValue("@myPrefix", myPrefix)
myIns1.Parameters.AddWithValue("@myNum", myNum)
它插入数据,我检查了数据库,它都在那里,但它仍然给我一个错误:
“您请求对表的更改不成功,因为它们会在索引、主键或关系中创建重复值。更改包含重复数据的字段或字段中的数据、删除索引或重新定义索引以允许重复条目,然后重试。”
【问题讨论】:
标签: asp.net sql vb.net ado.net