Sql server 使用另一种形式(VB.NET)的IF语句更新DataGridView

Sql server 使用另一种形式(VB.NET)的IF语句更新DataGridView,sql-server,vb.net,forms,visual-studio,if-statement,Sql Server,Vb.net,Forms,Visual Studio,If Statement,在我的代码中,假设我有两个表单 在主视图上是DataGridView,它包含一个名为ActivityStatus的列,该列显示成员是否已停止/正在进行 我有第二个表单,我通过双击一行打开,它提供了所有成员的详细信息,在表单底部有一个按钮,上面有密码;如果写得正确,它应该切换他的ActivityStatus(如果他停止了,他将继续进行,反之亦然) 这是我为它写的代码 表格1: Private Sub DGVData_CellContentDoubleClick(sender As Object,

在我的代码中,假设我有两个表单

在主视图上是DataGridView,它包含一个名为ActivityStatus的列,该列显示成员是否已停止/正在进行 我有第二个表单,我通过双击一行打开,它提供了所有成员的详细信息,在表单底部有一个按钮,上面有密码;如果写得正确,它应该切换他的ActivityStatus(如果他停止了,他将继续进行,反之亦然) 这是我为它写的代码

表格1:

Private Sub DGVData_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DGVData.CellContentDoubleClick
    Dim SV As New -- [FORM 2 NAME HERE]
    If e.RowIndex >= 0 Then
        Dim Row As DataGridViewRow
        Row = DGVData.Rows(e.RowIndex)

        SV.ActivityChange = Row.Cells("ActivityStatus").Value.ToString
        SV.IDVerify = Row.Cells("ID").Value.ToString
        ED.Show()
    End If

End Sub
表格2:

Public Class StatusVertificationBox
Public Property ActivityChange As String
Public Property IDVerify As String

Private Sub StatusPassBtn_Click(sender As Object, e As EventArgs) Handles StatusPassBtn.Click
    If StatusPassTxt.Text = "password123" Then
        If ActivityChange = 1 Then
            Dim Ask As MsgBoxResult
            Ask = MsgBox("Are you sure?", MsgBoxStyle.YesNo)
            If Ask = MsgBoxResult.Yes Then
                Dim MakeActiveCmd As String = "UPDATE InitialTable " &
                                              "SET ActivityStatus = 0 " &
                                              "WHERE ID='" & IDVerify & "' "
                MsgBox("This member's membership has been stopped")
            ElseIf Ask = MsgBoxResult.No Then
                MsgBox("No modifications have been made")
            End If
        ElseIf ActivityChange = 0 Then
            Dim Ask As MsgBoxResult
            Ask = MsgBox("Are you sure?", MsgBoxStyle.YesNo)
            If Ask = MsgBoxResult.Yes Then
                Dim MakeInactiveCmd As String = "UPDATE InitialTable " &
                                              "SET ActivityStatus = 1 " &
                                              "WHERE ID='" & IDVerify & "' "
                MsgBox("This member's membership has been renewed")
            ElseIf Ask = MsgBoxResult.No Then
                MsgBox("No modifications have been made")
            End If
        End If
        Me.Close()
    Else
        MsgBox("Incorrect Password, please try again.")
        StatusPassTxt.Clear()
    End If
End Sub
我不明白问题在哪里。IF语句工作不正常(MsgBox上显示的文本与语句不匹配,datagridview上的值根本没有更改)

任何帮助都将不胜感激,谢谢阅读

编辑:修复了代码中的一些内容,我不正确地复制了它,因为我编辑了一些内容以使你们更容易理解,这使我错过了一些代码

EDIT2:我注意到它总是跟在我放在上面的最后一个IF语句后面。。如果ActivityChange=0,则它始终在后面,即使(根据它的显示方式)它应该显示为1。。我仍然不知道如何解决这个问题编辑:
变量
ActivityChange
的类型为String。因此,比较应为:

If StrComp(ActivityChange, "1") = 0 Then
  ... 
编辑:
变量
ActivityChange
的类型为String。因此,比较应为:

If StrComp(ActivityChange, "1") = 0 Then
  ... 

是的,对不起,我已经有了MsgBoxStyle。是的,我最初在MsgBox中使用的是阿拉伯文,所以我不得不编辑出来让你们理解。。。我忘了重新复制MsgBoxStyle.YesNo部分,但是是的,我确实使用了它;它是无效的。@JohnMay可能您必须按照代码中所示对字符串进行比较。是的,我很抱歉,我已经有了MsgBoxStyle。是的,我最初在MsgBox中使用的是阿拉伯语文本,所以我必须对其进行编辑,以便大家理解。。。我忘了重新复制MsgBoxStyle.YesNo部分,但是是的,我确实使用了它;而且它是无效的。@JohnMay可能您必须对字符串进行比较,如代码所示。