2013-03-12 71 views
1

基本上,我點擊提交按鈕進入用戶表後,基本上已經有用戶輸入關於他們個人詳細信息的數據到文本框中。這工作得很好,直到我對這些文本框和現在所有的驗證工作使用驗證,但是當提交被點擊時,它會進入我鏈接到該按鈕的頁面,但是現在沒有數據被輸入到數據庫中的用戶表中。asp.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 
+0

你有沒有檢查調試這些txtforename.Text是否有值。 – 2013-03-12 09:57:43

+0

它在調試過程中工作正常,但不在我的服務器上。我不明白:/ – 2013-03-12 10:28:51

+0

然後嘗試在服務器上進行調試。對上述代碼不起作用的問題的第一個猜測是,您沒有從客戶端獲取任何內容,因此需要添加一個空行。 – 2013-03-12 10:30:59

回答

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),那麼您沒有機會向您報告失敗的事情。

+0

是的。我正在使用驗證控件,並使用屬性返回一個錯誤,如果一個字段沒有正確填寫,但我如何得到它檢查驗證? – 2013-03-12 11:24:48

+0

只需將你的代碼包裝在'If Page.IsValid Then ... End If'中。如果服務器端驗證失敗,則屬性「Page.IsValid」將爲false。 – 2013-03-12 11:36:35

+0

仍然不工作 - 我已將代碼放在按鈕後面。它是否正確?因爲它似乎還沒有將文本框中的數據添加到數據庫中 – 2013-03-12 17:54:08

相關問題