表的主鍵是使用Is Identity自動生成的,我想根據主鍵進行更新。下面的代碼肯定有問題,所以我希望有人爲我修改它。提前致謝。如何更新自動生成主鍵的數據
Try
Dim qry As String
qry = "Update StudentDetails.Programmes set [email protected],[email protected],[email protected],[email protected] where ID=ID"
cmd = New SqlCommand(qry, cn)
cmd.Parameters.Add(New SqlParameter("@Programme", txtProgramme.Text))
cmd.Parameters.Add(New SqlParameter("@Form", txtForm.Text))
cmd.Parameters.Add(New SqlParameter("@AcademicYear", txtAcademicYear.Text))
cmd.Parameters.Add(New SqlParameter("@Class", txtClass.Text))
cmd.ExecuteNonQuery()
MessageBox.Show("Record succesfully updated", "Updated", MessageBoxButtons.OK, MessageBoxIcon.Information)
showgrid()
End If
txtProgramme.Focus()
Catch ex As Exception
End Try
'PS:下面的代碼顯示瞭如何插入數據。數據庫中的Identity是否設置爲Yes。作品完美。我想糾正的代碼是上面的更新命令。
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Try
cmd = New SqlCommand("Insert into StudentDetails.programmes(Programme,Form,AcademicYear,Class) values(@Programme,@Form,@AcademicYear,@Class)", cn)
cmd.Parameters.AddWithValue("@Programme", txtProgramme.Text)
cmd.Parameters.AddWithValue("@Form", txtForm.Text)
cmd.Parameters.AddWithValue("@AcademicYear", txtAcademicYear.Text)
cmd.Parameters.AddWithValue("@Class", txtClass.Text)
cmd.ExecuteNonQuery()
MessageBox.Show("Record successfully saved", "Saved", MessageBoxButtons.OK, MessageBoxIcon.Information)
你向我們展示了更新命令,但如果是您的插入命令,爲什麼你不知道的PK?順便說一句,使用參數來防止SQL注入。 – 2011-12-20 21:52:09
+1使用參數!之間如果你有一個獨特的'ID'列。你爲什麼要生成主鍵? – King 2011-12-20 21:57:17
是的,我剛纔要這樣做。 – Akaglo 2011-12-20 21:59:31