powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / OleDbDataAdapter не верно распознает содержимое части ячеек - ячейка пуста (""), на самом
7 сообщений из 7, страница 1 из 1
OleDbDataAdapter не верно распознает содержимое части ячеек - ячейка пуста (""), на самом
    #40025964
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Считываю с помощью метода .ExecuteReader() объекта типа OleDbCommand данные из Excel файла, но он входе дальнейшего чтения данных методом .Read() показывает, что некоторые ячейки пустые - "". И так он показывает через 1-у, 2-е ячейки, т.е. то нормально считал, а то говорит, что там пуская строка, хотя на самом деле ячейка не пустая.

В чем может быть причина и как с этим бороться?

Вот код, как я пытаюсь считать:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
private void Redxls(string way,string filename,string nameList,string startColumn,string finishColumn,string countRows)
        {
            var DataTableConnect = CreateConnectStrBuilder(way, filename);

            using (OleDbConnection connection = new OleDbConnection(DataTableConnect.Item2.ConnectionString))
            {
                connection.Open();

                //Вывод заданного диапазон в 1-ый DataGridView

                //Получаем конкретный диапазон
                string selectSql =String.Format(@"SELECT * FROM [{0}{1}0:{2}{3}]", nameList,startColumn,finishColumn, countRows);

                OleDbCommand excelDbCommand = new OleDbCommand(selectSql, connection);

                using (OleDbDataAdapter adapter = new OleDbDataAdapter(excelDbCommand))
                {
                    adapter.Fill(DataTableConnect.Item1);
                    dataGridViewExcel.DataSource = DataTableConnect.Item1;
                }

                //Вывод всех значений 1-ой строки (заголовок таблицы) в столбец 2-го DataGridView
                List<string> nameColumns = new List<string>();
                OleDbDataReader reader = excelDbCommand.ExecuteReader();
                reader.Read();
                
                //Считывание ячеек строки с заголовками
                for (int i = 0; i < reader.FieldCount; i++)
                {
                    nameColumns.Add(reader[i].ToString());
                }

                //Считывание оставшихся строк с содержимым
                while (reader.Read())
                {
                    Dictionary<string, string> dict = new Dictionary<string, string>();

                    for (int i = 0; i < reader.FieldCount; i++)
                    {
                        dict.Add(nameColumns[i], reader[i].ToString());
                    }
                    dataExcelFile.Add(dict);
                }
                createColumnsDataGridView();

               
                reader.Close();
                connection.Close();
            }
        }
...
Рейтинг: 0 / 0
OleDbDataAdapter не верно распознает содержимое части ячеек - ячейка пуста (""), на самом
    #40025973
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значит у тебя разнотипные данные в столбце, например числа и текст. Если драйвер определил столбец как числовой, то текста там видно не будет
...
Рейтинг: 0 / 0
OleDbDataAdapter не верно распознает содержимое части ячеек - ячейка пуста (""), на самом
    #40025975
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно использовать IMEX=1, тогда все данные будут текстовые и их конвертирование ты должен будешь брать на себя
...
Рейтинг: 0 / 0
OleDbDataAdapter не верно распознает содержимое части ячеек - ячейка пуста (""), на самом
    #40025977
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
значит у тебя разнотипные данные в столбце, например числа и текст. Если драйвер определил столбец как числовой, то текста там видно не будет

Формат ячеек стоит общий, сейчас попробую поменять на текстовый
...
Рейтинг: 0 / 0
OleDbDataAdapter не верно распознает содержимое части ячеек - ячейка пуста (""), на самом
    #40025981
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Формат ячеек стоит общий, сейчас попробую поменять на текстовый
это тут вообще не причем
...
Рейтинг: 0 / 0
OleDbDataAdapter не верно распознает содержимое части ячеек - ячейка пуста (""), на самом
    #40025982
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Можно использовать IMEX=1, тогда все данные будут текстовые и их конвертирование ты должен будешь брать на себя


Это нужно вот сюда ставить?

Код: c#
1.
2.
3.
4.
OleDbConnectionStringBuilder connectStrbuilder = new OleDbConnectionStringBuilder();
            connectStrbuilder.Provider = "Microsoft.ACE.OLEDB.12.0";
            connectStrbuilder.DataSource = path;
            connectStrbuilder.Add("Extended Properties", "Excel 12.0 Xml;HDR=NO");
...
Рейтинг: 0 / 0
OleDbDataAdapter не верно распознает содержимое части ячеек - ячейка пуста (""), на самом
    #40025988
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro
Можно использовать IMEX=1, тогда все данные будут текстовые и их конвертирование ты должен будешь брать на себя

Это помогло, спасибо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / OleDbDataAdapter не верно распознает содержимое части ячеек - ячейка пуста (""), на самом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (3): Анонимы (2), Bing Bot 4 мин.
Пользователи онлайн (12): Анонимы (9), Bing Bot, Yandex Bot, Google Bot 6 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]