【发布时间】:2013-02-14 18:41:46
【问题描述】:
以下代码阻止我保存新记录。如果有人可以为我编辑它,我会很高兴。无论记录是否存在,都会提示“记录存在”。
试试
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 注入与无法自动处理测试和插入的完美结合。你想要多少代码?
-
我希望用户只能保存新记录。
标签: sql-server vb.net tsql