2013-04-20 59 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