asp.net - 将数据从文本框添加到数据库 - 验证停止工作后

时间:2013-03-12 09:54:23

标签: asp.net vb.net

基本上,在点击提交按钮进入用户表后,我将用户输入的关于个人详细信息的数据输入到文本框中。这工作正常,直到我在这些文本框上使用验证,现在所有验证工作,但是当单击提交时,它转到我链接到按钮的页面,但现在没有数据输入到数据库中的用户表。

任何想法?

我的代码如下所示。谢谢

Protected Sub cmdSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSubmit.Click

   'add new user'
    Dim db As New LostPropertyDataContext
    Dim U As New tblUser With {.Forename = txtforename.Text, 
           .Surname = txtsurname.Text, .DateOfBirth = txtdob.Text, .Gender = txtgender.Text,
           .Address = txtaddress.Text, .Postcode = txtpostcode.Text, .TelephoneNo = txttelephoneno.Text,
           .MobileNo = txtmobileno.Text, .Email = txtemail.Text}
    db.tblUsers.InsertOnSubmit(U)
    db.SubmitChanges()
    Response.Redirect("/u1065977/LostPropertyProject/LostProperty2.aspx")


End Sub

1 个答案:

答案 0 :(得分:0)

当您说您添加了验证时,我认为您的意思是您已将验证控件添加到您的页面。

这是一个很好的做法 - 有人可能会说,这是一种必要的做法 - 将代码包装在测试中是否通过验证:

If Page.IsValid Then
   'add new user'
   Dim db As New LostPropertyDataContext
   Dim U As New tblUser With {.Forename = txtforename.Text, 
       .Surname = txtsurname.Text, .DateOfBirth = txtdob.Text, .Gender = txtgender.Text,
       .Address = txtaddress.Text, .Postcode = txtpostcode.Text, .TelephoneNo = txttelephoneno.Text,
       .MobileNo = txtmobileno.Text, .Email = txtemail.Text}
   db.tblUsers.InsertOnSubmit(U)
   db.SubmitChanges()
   Response.Redirect("/u1065977/LostPropertyProject/LostProperty2.aspx")
End If

您正在尝试更新,而不检查服务器端是否已通过验证。如果您正在使用任何自定义验证(例如CustomValidator),那么您就没有机会向您报告失败的情况。