2015-09-06 42 views
1

在我的代碼,讓我們說我有2種形式更新的DataGridView用另一種形式的IF語句(VB.NET)

在主一個是在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上的文本顯示與語句不匹配,並且數據網格視圖上的值完全沒有改變)

任何幫助將不勝感激,感謝閱讀傢伙

編輯:從代碼固定的東西,我非法複製它,因爲我編輯了一些東西,以使其更易於你們明白了,這讓我錯過了幾個代碼

EDIT2:我注意到它總是遵循我放在上面的最後一條IF語句。它總是跟在If ActivityChange = 0,e VEN如果(根據它的顯示方式)應該顯示爲1 ..我還是不知道如何解決這個

回答

0

編輯:
變量ActivityChange是String類型。所以比較應該是:

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

是的,我很抱歉,我已經有MsgBoxStyle.YesNo 我原來使用的MSGBOX阿拉伯文字,所以我不得不編輯出來給你們理解它...我忘了重新複製MsgBoxStyle.YesNo部分 但是,我確實使用它;這是無效的。 –

+0

@JohnMay也許你必須對代碼中顯示的字符串進行比較。 – SkyMaster