我不知何故得到一個雙插入;每次我提交表單時,它都會向數據庫發送兩條記錄。我無法弄清楚發生了什麼事。這是我的代碼看起來像一個總體思路:MS Access中雙插入?
Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
'Data collection'
'Define Connection'
Dim myConn As New OleDbConnection
myConn.ConnectionString = adsGrandmaster.ConnectionString
myConn.Open()
'Insert command'
Dim myIns1 As New OleDbCommand("INSERT INTO tableGrandmaster (date_received, prefix, course_number, title, new, changed, inactivate, end_date, credits, description, hours_lecture, hours_lec_lab, hours_lab, hours_total, related_instruction, repeat, challengeable, in_catalog, in_printed_schedule, core_course, core_name, program_elective, program_name, prereqs, coreqs, recommended, green_course, code, dept_code, division_code, changing_depts, acti_code, grading, general_ed, writing, social_science, math, information_literacy, arts_letters, science_computer, speech_comm, cultural_literacy, date_curriculum_approval, date_state_sent, date_state_approval, date_created) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", myConn)
'Insert parameters'
'Execute command'
myIns1.ExecuteNonQuery()
'Close connection'
myConn.Close()
更新:
最後的小片我.aspx.vb文件:
'Execute command'
myIns1.ExecuteNonQuery()
Label1.Text = "Grandmaster submitted."
'Close connection'
myConn.Close()
End Sub
Protected Sub btnBack_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBack.Click
Response.Redirect("./index.htm")
End Sub
End Class
如果我把我的myIns1.ExecuteNonQuery()之前或之前的斷點,沒有任何插入。如果我把它放在myIns1.ExecuteNonQuery()之後,它會插入一次。如果我將它放在「End Sub」(在myConn.Close()下面),它會插入兩次。
這些問號到底是什麼問題?我假設'myConn'是以前聲明的數據庫連接 – 2011-04-23 23:31:24
是的,對不起,我把它從我的文章中刪除了,只是將它添加進去了。問號,我認爲它是Microsoft Access的東西?我不知道,除了Access之外,我還沒有真正使用過任何東西,這就是我被教導的方式......我認爲正常的語法是@whatever ......但我不認爲這適用於此。 – Sara 2011-04-23 23:36:22
問號是OleDb的參數佔位符。它們是序數,而不是名義上的。 – 2011-04-23 23:48:14