2013-04-20 60 views
0

我有一個包含6個groupboxes和120個文本框的表單。在數據更新到數據庫期間,我希望空白文本框返回值「-NA-」。我嘗試了下面的代碼,但我不斷收到錯誤:如何在更新數據庫時用空值填充空文本框?

 For i As Integer = 1 To 20 
     If GroupBox1.Controls("CollarTB" & i).Text = String.Empty Then 
      GroupBox1.Controls("CollarTB" & i).Text = "-NA-" 
     End If 

     If Me.GroupBox1.Controls("CollarTB" & i).Text = String.Empty Then 
      Me.Controls("CollarTB" & i).Text = "-NA-" 
     End If 

     If Form9.Controls(i).Text = String.Empty Then 
      Form9.Controls(i).Text = "-NA-" 
     End If 

    Next 



     If FrntTB1.Text = String.Empty Then FrntTB1.Text = "-NA-" 

這怎麼辦?任何解決方案?

另外,我還有一個包含180個文本框的groupbox。我想一次從一行數據庫中填充它們。可能嗎?如果是這樣,怎麼樣?

回答

0

您可以使用linq過濾從formgroupboxes並在groupboxes你可以過濾掉textboxes,然後簡單地設置的值到textboxes按您的要求。試試這個代碼,

LINQ的I型:

For Each xGroupBox As GroupBox In Me.Controls.OfType(Of GroupBox)() 

    For Each xTextBox As TextBox In xGroupBox.Controls.OfType(Of TextBox)() 

     If xTextBox.Name.StartsWith("CollarTB") andalso xTextBox.text = string.empty Then 
      xTextBox.Text = "-NA-" 
     End If 

    Next 

Next 

LINQ的II型:

For Each xGroupBox As GroupBox In Me.Controls.OfType(Of GroupBox)() 
    For Each xTextBox As TextBox In From xTxtbx In xGroupBox.Controls.OfType(Of TextBox)() Where xTxtbx.Text.StartsWith("CollarTB") and xTxtbx.text = string.empty 
     xTextBox.Text = "-NA-" 
    Next 
Next 

非LINQ的版本:

For Each xControls As Control In Me.Controls 

    If TypeOf xControls Is GroupBox Then 

     For Each xControls1 As Control In xControls.Controls 

      If TypeOf xControls1 Is TextBox Then 

       If xControls1.Name.StartsWith("CollarTB") andalso xControls1.text = string.empty Then 

        xControls1.Text = "-NA-" 

       End If 

      End If 

     Next 

    End If 
    Next 
+0

謝謝...第一LINQ的代碼非常完美對我來說......你有沒有機會解決第二個問題? – SaurabhSuman 2013-04-20 05:34:25

+0

@SaurabhSuman請你詳細說明你的第二個問題。 – 2013-04-20 05:36:33

+0

我有一個窗體,其中我每個都有180個文本框。在後臺我有一個MS Access數據庫,我必須從表中檢索數據並將其顯示在這些文本框中。是否有任何捷徑可以讓我一次填充180個文本框?每個表格有181個字段,其中1個字段的數據已經顯示在組合框的組合框中。剩下的數據必須填入文本框中。 – SaurabhSuman 2013-04-20 08:12:20