Flower@12 Ответов: 1

Не удается преобразовать тип nvarchar в long in VB.NET


Мой проект разрабатывается в vb.net.Я использовал Msh FlexGrid и хочу проверить, имеет ли ячейка сетки какое-либо значение в сетке.

Что я уже пробовал:

Мой код таков
<pre>  
With GridMed
          For intRow = 1 To .Rows - 1
                    If Not .TextMatrix(intRow, .GetColIndex("HpName")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("DoctorName")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("RegNo")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("ID1")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("Id2")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("Fitness")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("CertifiedDate")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("Status")) Then
                        Exit For
                    End If
End with
                   
It shows Following error 

Conversion from string "hjkhj" to type 'Long' is not valid.

1 Ответов

Рейтинг:
10

OriginalGriff

Посмотрите на сообщение об ошибке:

Conversion from string "hjkhj" to type 'Long' is not valid.
Это довольно ясно и абсолютно правильно.
Какое число вы ожидаете получить из строки "hjkhj"? Система говорит вам: "это не число, я ничего не могу с ним сделать".

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

Мы не можем сделать это для вас.


[no name]

- Спасибо, сэр.Я хочу проверить, имеет ли сетка какое-либо значение в ячейке сетки..Я попробовал следовать коду, но он не работает.Как проверить, содержит ли каждая ячейка значение или нет

  
With GridMed
          For intRow = 1 To .Rows - 1
                    If Not .TextMatrix(intRow, .GetColIndex("HpName")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("DoctorName")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("RegNo")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("ID1")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("Id2")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("Fitness")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("CertifiedDate")) <> "" Or Not .TextMatrix(intRow, .GetColIndex("Status")) Then
                        Exit For
                    End If
End with

OriginalGriff

Используйте отладчик!

[no name]

Я уже проверил его.Сэр, я хочу проверить, имеет ли какое-либо одно поле значение, если условие подходит к концу, но оно не приходит

OriginalGriff

И как именно вы проверили это с помощью отладчика?
Что именно он вам показал?

[no name]

Моя сетка имеет пять полей и 3 поля имеют значение теперь я хочу закончить оператор If но его управление переходит в Exit For оператор what is the Mistake i done

OriginalGriff

Используйте отладчик и узнайте!
Посмотрите на каждую переменную, которую использует условие If, и выясните, что именно делает каждое сравнение.

Я не могу сделать это для вас - я не могу запустить ваш код...

[no name]

Поле имеет значение, но элемент управления выполняет оператор Exit For..Как это возможно?