1

基本的に、送信ボタンをクリックしてユーザーテーブルに移動した後、ユーザーが個人情報についてテキストボックスに入力したデータがありました。これらのテキストボックスで検証を使用するまで、これはうまく機能し、すべての検証が機能するようになりましたが、送信をクリックすると、ボタンにリンクしたページに移動しますが、現在データベースのユーザーテーブルにデータが入力されていません.

何か案は?

私のコードを以下に示します。ありがとうございました

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
4

1 に答える 1

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)を使用している場合、何かが失敗したことを報告する機会を与えていません。

于 2013-03-12T11:12:33.627 に答える