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

标签 mysql vb.net textbox text-files

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

SensorTypeA_Test
传感器A1_输出:5.00
传感器A2_输出:0
SensorA_Test:失败
传感器类型B_测试
传感器B1_输出:3.50
SensorB2_输出:3.50
Sensor_Test:通过

在这种情况下,我想做的基本上是有 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

结果...

enter image description here

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

关于mysql - 在VB中将特定值从一个文本框输出到多个文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43352693/

相关文章:

mysql - 字典的数据库选择

.net - 在 VB.NET 中使用正则表达式从字符串中解析数字

c++ - 为什么 VB.NET 和 C++ 对相同的表达式给出不同的结果?

c# - 如何通过鼠标拖动来选择多个控件

mysql - 在 ER 图中实现特化

java - 无法从android中的远程ubuntu tomcat服务器连接mysql数据库

php - 用于最快查找的最佳 MySQL 表结构

.net - 图片框面板闪烁

jquery - 提取jquery mobile的可清除文本框的功能

wpf - 如何获得一个TextBox来填充可调整大小的列?