在 vb 中将字符串"是"或"否"转换为布尔值



我想将txtQualed的字符串转换为数据库中设置为位的布尔值,但它不起作用,错误"字符串无法识别具有有效的布尔值",请问我该怎么办?


Sub verify()

If aggregate >= CutOffPoint.txtMaleCut.Text AndAlso cmbGender.SelectedItem = "Male" Then
MsgBox("Sorry, You do not Qualify to Offer the Program")
txtQualified.Text = "No"
Convert.ToBoolean(txtQualified.Text)
ElseIf aggregate >= CutOffPoint.txtFemaleCut.Text AndAlso cmbGender.SelectedItem = "Female" Then
MsgBox("Sorry, You do not Qualify to Offer the Program")
txtQualified.Text = "No"
Convert.ToBoolean(txtQualified.Text)
ElseIf aggregate < less Then
MsgBox("Sorry, Invalid Entry, Please Entry all Provided Grades")
Else
MsgBox("Congratulation, You have Qualified")
txtQualified.Text = "Yes"
Convert.ToBoolean(txtQualified.Text)
End If
End Sub

尝试将此函数添加到您的项目中:

Public function ConvertTextToBoolean(InputStr as String) As Boolean
if InputStr = "No" Then
Return False
end if
if InputStr = "Yes" Then
Return True
end if
if not InputStr = "Yes" and not InputStr = "No" Then
MsgBox("Invalid String")
end if
end function

但我理解不正确:你想在没有">如果"的情况下做到这一点吗!?

只需编写一个小函数即可获取布尔值。如果值可能不是"是"和"否",则可以添加一些验证。

为具有正确数据库数据类型的参数添加.Add方法将使操作更安全。

Private Sub OPCode()
Dim sql = "Insert Into YourTable (ABitField) Values (@BitField);"
Using cn As New SqlConnection("Your connection string"),
cmd As New SqlCommand(Sql, cn)
cmd.Parameters.Add("@BitField", SqlDbType.Bit).Value = GetBoolean(txtQualified.Text)
cn.Open()
cmd.ExecuteNonQuery()
End Using
End Sub
Private Function GetBoolean(s As String) As Boolean
Return s = "Yes"
Return False
End Function

最新更新