Проверка значения datagridview - PullRequest
0 голосов
/ 05 июля 2018

Я импортирую файл Excel, и в этом файле Excel в одном столбце, назовем его CodeName, возможные значения A01, A02, B01, B02. Это единственно возможные значения

Можно ли прочитать содержимое строки в представлении данных и иметь условие, при котором у меня могут быть только A01, A02, B01 или B02?

В настоящее время я думаю;

 'READING every row TESTING
        For Each row As DataGridViewRow In DataGridView1.Rows
            If -----Then
             'MsgBox("content has wrong value")
            End If
        Next

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Другой подход ... Определите массив допустимых значений, затем используйте метод .Contains для каждого значения, которое вы хотите проверить.

    Dim arr() As String = {"A01", "A02", "B01", "B02"}
    For Each row As DataGridViewRow In DataGridView1.Rows
        If Not arr.Contains(row.Cells("CodeName").ToString) Then
            MsgBox("Wrong")
        End If
    Next
0 голосов
/ 05 июля 2018

Как сказано в комментариях, было бы лучше заполнить DataGridView оператором SELECT, который приводит только строки с CodeName = YourValues ​​

Хотя, чтобы ответить на ваш вопрос, который может помочь вам в будущем, я бы сделал что-то вроде этого:

        For Each dgvRow As DataGridViewRow In DataGridView1.Rows
            If dgvRow.Cells("CodeName").Value Is DBNull.Value Then
                MsgBox("Wrong Value")
            Else
                Select Case dgvRow.Cells("CodeName").Value
                    Case "A01", "A02", "B01", "B02"
                        'Do nothing
                    Case Else
                        MsgBox("Wrong Value")
                    End Select
            End If
        Next

Сначала я проверяю NULL, а затем использую оператор SELECT CASE, потому что, сравнивая что-то с несколькими значениями, я чувствую, что это более аккуратно, чем список ElseIf, но это зависит только от вас.

Возможно, вы не захотите msgBox, хотя, как если бы это было довольно раздражающим, если есть много строк, которые не содержат значений, которые вы ищете.

Возможно, просто установите dgvRow.Cells("CodeName").Style.BackColor = Color.Red или что-то вместо этого, чтобы вы могли видеть неправильные значения и не каждый раз нажимать кнопку ОК.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...