Mysql 在VB中将特定值从一个文本框输出到多个文本框

Mysql 在VB中将特定值从一个文本框输出到多个文本框,mysql,vb.net,textbox,text-files,Mysql,Vb.net,Textbox,Text Files,我在VS2015中使用VB,我有一个文本框,它接收来自微处理器的大约40行输入。我最终需要做的是在多个文本框中显示一些输入,并将这些值保存到mySQL数据库中。例如,假设我有: 传感器类型A\U测试 传感器1_输出:5.00 传感器A2_输出:0 传感器A\U测试:失败 传感器类型B_测试 传感器B1_输出:3.50 传感器B2_输出:3.50 传感器测试:通过 在这种情况下,我想做的是基本上有6个文本框(每个文本框都有一个预先制作的标签,如传感器A1)填充5.00、0、FAIL、3.50、3.

我在VS2015中使用VB,我有一个文本框,它接收来自微处理器的大约40行输入。我最终需要做的是在多个文本框中显示一些输入,并将这些值保存到mySQL数据库中。例如,假设我有:

传感器类型A\U测试
传感器1_输出:5.00
传感器A2_输出:0
传感器A\U测试:失败
传感器类型B_测试
传感器B1_输出:3.50
传感器B2_输出:3.50
传感器测试:通过

在这种情况下,我想做的是基本上有6个文本框(每个文本框都有一个预先制作的标签,如传感器A1)填充5.00、0、FAIL、3.50、3.50和Pass

在我看来,有两种方法可以做到这一点。首先,我可以知道如何将值直接发送到mySQL数据库,然后将所需的值拉入多个文本框。这相当简单,但我不知道如何将这些值直接发送到数据库,因为它们没有变量名

另一种方法是通过文本框本身进行解析,或者将输入保存到文件中并通过该文件进行解析。如果我这样做的话,我更愿意让每个文本框查找与其标签对应的值,而不是按顺序填充所有文本框。我的意思是,如果有一个标记为“Sensor A1”的文本框,它将有自己的变量名,比如tbSensorA1,它将查找“SensorA1_Output”,然后显示冒号后面的值,如果没有值,则只需在文本框中显示“N/a”。这也使得在数据库中存储值变得非常容易


因此,基本上,我想知道除了我提出的方法之外,是否还有其他方法可以做到这一点,如果没有,我如何在文本框或文本文件中搜索特定短语,并在相应的文本框中输出冒号后面的值?感谢您的帮助!谢谢

嗯,有很多方法可以做到这一点。我不建议尝试在数据库中这样做,因为数据库对于解析来说不是很好,而且这感觉就像是应该在中间或前端使用的逻辑。如果这只是一种显示已有数据的方式,那么它可能完全是前端

这里有一种方法-创建所需的文本框,并在每个文本框的标记属性中存储一个“前缀”值,该值可用于确定给定传感器数据值是否适合该文本框

然后,您只需循环遍历每个文本框和传感器数据行,进行比较,然后将值添加到文本框(如果匹配)

以下是示例代码:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    txtSensor.Text = "SensorTypeA_Test()" & vbCrLf & _
                     "SensorA1_Output: 5.00" & vbCrLf & _
                     "SensorA2_Output: 0" & vbCrLf & _
                     "SensorA_Test: FAIL()" & vbCrLf & _
                     "SensorTypeB_Test()" & vbCrLf & _
                     "SensorB1_Output: 3.50" & vbCrLf & _
                     "SensorB2_Output: 3.50" & vbCrLf & _
                     "Sensor_Test: Pass()"
End Sub

Private Sub btnPopulate_Click(sender As Object, e As EventArgs) Handles btnPopulate.Click
    txtSensorA.Tag = "SensorA"
    txtSensorB.Tag = "SensorB"


    Dim lstOutputs As New List(Of TextBox)
    lstOutputs.Add(txtSensorA)
    lstOutputs.Add(txtSensorB)

    Dim sensorData() As String = txtSensor.Text.Trim.Split(vbCrLf)
    For Each tb In lstOutputs
        For Each sline In sensorData
            If sline.TrimStart.StartsWith(tb.Tag) Then
                UpdateOutputTextBox(tb, sline.Trim)
            End If
        Next
    Next
End Sub

Private Sub UpdateOutputTextBox(tb As TextBox, sLine As String)
    Dim sParts() As String = sLine.Split(":")
    Dim sData As String = String.Empty
    If sParts.Count = 2 Then
        sData = sParts(1)
        If tb.Text.Length > 0 Then
            tb.Text &= (", " & sData.Trim)
        Else
            tb.Text = sData.Trim
        End If
    End If
End Sub
结果

所以你应该能够做一些非常相似的事情。希望这有帮助