Игнорировать пустые или пустые ячейки при использовании OleDbConnection? - PullRequest
0 голосов
/ 12 декабря 2018

Sample Pic

Так что это лист, с которого я читаю данные.Скажем, что я говорю своей строке подключения, чтобы выбрать A25: B50.

Ну, A47 - B50 пусто.Если я специально говорю моей строке подключения использовать только A25: B46, она работает нормально, однако, когда я говорю, что она также выбирает B50, она говорит мне, что там нет ячейки.

Как я могу использоватьСтрока подключения до B50, так что, если у меня будет больше данных в будущем, она также будет читать?

Вот мой код, чтобы выбрать его:

MyCommand2 = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$A25:B46] order by Visits desc", MyConnection2)
Dim DS = New System.Data.DataSet
MyCommand.Fill(DS)
For Each r As DataRow In DS.Tables(0).Rows
                DataGridView1.Rows.Add(r.Item("Places"), r.Item("Visits"))
            Next

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Похоже, проблема даже не связана с этим.Проблема, по-видимому, заключается в том, что я выбирал значение «Общее» (Посещения), сказав своему коду сделать что-то вроде: Tables(0).Rows(21)(1)

Очевидно, что если я удалю строку, местоположение этой конкретной ячейки больше не будет существовать,Однако решение @m mukai также помогло улучшить мой код.Спасибо всем.

0 голосов
/ 12 декабря 2018

Выберите все 25-й и последующие строки столбцов AB.

select * from [Sheet1$A25:B] order by Visits desc

И кроме пустых (или только пробелов) строк.

select * from [Sheet1$A25:B] where len(trim(Places)) > 0 order by Visits desc

Если в строке нет пустых строкПосередине данных пустые строки не будут выделены.Поэтому, если данные представлены в представленной форме, я не думаю, что вам нужно иметь предложение Where.

Я предполагаю, что пробел был введен со строки 47 и далее.Попробуйте проверить, не введены ли пробелы и т. Д. В строку, которая выглядит пустой.

...