다음 코드는 새 레코드를 저장하지 못하게합니다. 누군가 나를 위해 편집 할 수 있다면 기쁠 것입니다. 레코드가 존재하는지 여부에 관계없이 "레코드가 존재합니다"라는 메시지가 표시됩니다.중복 레코드가 저장되지 않도록하는 방법
는
If String.IsNullOrEmpty(subject_id) Or rbnCore.Checked = False And rdbElective.Checked = False Or String.IsNullOrEmpty(username) Or String.IsNullOrEmpty(password) Then
MessageBox.Show("One or more fields have not been left empty.", "Save Error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
txtSubjectCode.Focus()
Else
If rbnCore.Checked = True Then
subject = "Core"
Else : subject = "Elective"
End If
cmd2 = New SqlCommand("select count(*) from ProgramDetails.Subjects where IdNumber = " & txtIDNumber.Text & " ", cn)
queryResult = cmd2.ExecuteScalar
If queryResult = 0 Then
qry = "Insert into ProgramDetails.Subjects(SubjectCode,SubjectName,SubjectType,UserID,Password)values(@SubjectCode,@SubjectName,@SubjectType,@UserID,@Password)"
cmd = New SqlCommand(qry, cn)
cmd.Parameters.Add(New SqlParameter("@SubjectCode", txtSubjectCode.Text))
cmd.Parameters.Add(New SqlParameter("@SubjectName", txtSubName.Text))
cmd.Parameters.Add(New SqlParameter("@SubjectType", subject))
cmd.Parameters.Add(New SqlParameter("@UserID", txtUserName.Text))
cmd.Parameters.Add(New SqlParameter("@Password", txtPassword.Text))
cmd.ExecuteNonQuery()
MessageBox.Show("Record successfully saved", "Saved", MessageBoxButtons.OK, MessageBoxIcon.Information)
btnSave.Enabled = False
btnClear.Focus()
showgrid()
End If
MessageBox.Show("Record already exists", "Existing record", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
? 따라서 사용자가 새로운 행을 추가 할 수 없도록하려면? 그걸 쓰는 아주 쉬운 방법이 있습니다 ... –
SQL 인젝션과 테스트를 처리하고 원자 적으로 삽입하는 데 실패한 좋은 조합입니다. 얼마나 많은 코드를 원하십니까? – HABO
사용자가 새 레코드 만 저장할 수 있기를 원합니다. – Akaglo