如何从条形码扫描仪读取输入并显示到TextBox中?

时间:2017-03-20 09:48:47

标签: vb.net

第一个条形码内容将是:1 | 123456 | ABC

第二个条形码内容将是:2 | 123456789542 | ABCDSE

我只是想检索粗体部分。

这是我的代码:

Private Sub TextScanPartNo_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) Handles TextScanPartNo.KeyPress
    TextVendorID.CharacterCasing = CharacterCasing.Upper
    If Me.TextVendorID.Focused = False Then
        TextVendorID.Focus()
        TextVendorID.Text = e.KeyChar.ToString     
        e.Handled = True
    End If
End Sub

2 个答案:

答案 0 :(得分:2)

如果输入总是为xxx | xxxxxx | xxx,那么这很容易完成。我们可以使用String.Split方法:

dt.AsEnumerable().Where(dataRow => !string.IsNullOrEmpty(dataRow.Field<string>(dc.ColumnName).First().ToString()) && (dataRow.Field<int>(dc.ColumnName) == 1)).Count() > 3

请注意Dim textToSplit As String = "1|123456|abc" Dim text As String = textToSplit.Split(New Char() {"|"c})(1) 末尾使用(1).Split()会返回.Split(),从而产生以下输出:

String()

由于您只需要 123456 ,我们可以通过将(0) 1 (1) 123456 (2) abc 附加到(1)方法的末尾来定位。

.Split的输出是:

text

编辑为OP表示他们在输入“2 | 123456789542 | ABCDSE”时遇到问题。格式仍然是xxx | xxxxxx | xxx,因此123456 代码仍然有效。

这是代码的屏幕截图,显示了您的输出:

enter image description here

答案 1 :(得分:1)

您可以使用拆分功能:

Column "EventReadingListItem"."id" must appear in the GROUP BY clause or be used in an aggregate function.