Previous question which links onto this and has any addition code ref should I forget to link any,我已将其设置为通过电子邮件发送给我,如果有人提交此表单并发生错误,那么如果大多数整数或日期时间字段发生错误,如果它们无法验证那么它会告诉我哪些字段在电子邮件中失败了,输入了什么。
我现在遇到的问题是以与整数和日期时间字段类似的方式验证下拉菜单和文本框,这样我就可以在电子邮件中显示这些内容,以防它们出错。
显示整数和日期时间验证
Catch ex As Exception
lblInformation.Text = ("<h4>Unable to save data in database</h4>" + vbNewLine + "The error was '" + ex.Message + "'" + vbNewLine + vbNewLine + vbNewLine + "The SQL Command which falied was:" + vbNewLine + "<strong>" + mySQL + "</strong>" + vbNewLine).Replace(vbNewLine, "<br />" + vbNewLine)
Dim dtb As DateTime
If Not DateTime.TryParse(DateOfBirth, dtb) Then
strEMessageBody.Append("<strong>Date Of Birth:</strong> " & DateOfBirthYear.SelectedItem.Value & "-" & DateOfBirthMonth.SelectedItem.Value & "-" & DateOfBirthDay.SelectedItem.Value & vbCrLf)
strEMessageBody.Append("<br/>" & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab)
End If
Dim iao As Integer
If Not Integer.TryParse(AnyOther, iao) Then
strEMessageBody.Append("<strong>Any Other:</strong> " & rblAnyOther.Text & vbCrLf)
strEMessageBody.Append("<br/>" & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab)
End If
然后在最终验证之下,我有电子邮件设置的Dim,但我在另一个问题中整理了。
我的页面中的问题要早得多
Sub Upload_Click(ByVal source As Object, ByVal e As EventArgs)
If (Page.IsValid) Then
Dim Name As String
这阻止我只使用上面显示的名称,我会改为称之为别的东西,但是这对字符串不起作用所以我的主要问题是有一些代码来检查字符串是否有效以及下拉列表哪个可以工作,但总是在电子邮件中显示数据或打算在代码中打嗝,
Dim imd As Integer
If Not Integer.TryParse(dept, imd) Then
strEMessageBody.Append("<strong>Department:</strong> " & dept.Text & vbCrLf)
strEMessageBody.Append("<br/>" & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab)
End If
下面是如何设置记录部门
Department = dept.SelectedItem.Value
部门=替换(部门,“'”,“''”)
总结: - 需要vb代码来验证字符串和下拉列表是否有效,并且使用try / catch块是另一种可能的解决方案,但我无法弄清楚如何实现验证。
答案 0 :(得分:1)
将您的值记录到数据库中。设置一个名为“tblLog”的日志记录表或其他内容。记录ex.Message的值,甚至可能记录InnerException(如果存在)。
答案 1 :(得分:1)
与Matt的答案同时进行,有一个工具可以帮助您自动将错误记录到数据库。
它被称为ELMAH。
修改强>
以下是您可能想要使用的2个验证:
Dim s As String = "some user input in here"
If [String].IsNullOrEmpty(s) Then
' Watch out, string is null or it is an empty string
End If
Dim cb As New ComboBox()
If cb.SelectedItem Is Nothing Then
' Watch out, combo has no item selected
End If
注意在这个例子中,ComboBox是一个WinForm控件,但是对于ASP.NET对应的想法是相同的
答案 2 :(得分:0)
由于每个人都放弃了试图寻找解决方案,所以我将以这篇文章作为答案来结束这个话题。