Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение csv файлов, Не читаются некоторые ячейки 
V
    Опции темы
KelTron
Дата 26.2.2009, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 5
Всего: 38



Здравствуйте!

Есть такой код:
Код

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public void LoadDataToTable(string filePath, DataTable dataTable)
        {
            string connString =
                    String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};" +
                        "Extended Properties=\"Text;HDR=Yes;FMT=Delimited\"",
                        Path.GetDirectoryName(filePath));

            string cmdString = String.Format("SELECT * FROM {0}", Path.GetFileName(filePath));


            using (OleDbConnection connection = new OleDbConnection(connString))
            {
                OleDbDataAdapter adapter = new OleDbDataAdapter(cmdString, connection);
                adapter.Fill(dataTable);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (this.ofdImportFile.ShowDialog() == DialogResult.OK)
            {
                DataTable dt = new DataTable();
                LoadDataToTable(this.ofdImportFile.FileName, dt);
                this.dataGridView1.DataSource = dt;
            }
        }
    }


Есть такой файл:

Код

1;    2;     3;                  4;     5;     6;     7
sss; 22;   88;                bg;   fgfd; dfg; dfg
sss; 342; dfgdfgdgdfg; 234; rrr;   bbb; vfvc


Проблема заключается в том, что некоторые ячейки не читаются и в дататейбл записываются значения DBNull.
Так, как будто файл выглядит так:
Код

1;    2;     3;   4;     5;      6;     7
sss; 22;   88; ;       fgfd;  dfg;  dfg
sss; 342; ;     234; rrr;    bbb;  vfvc

На скриншоте показано как выглядит вывод такого файла.

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

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

Подскажите, пожалуйста, как можно решить эту проблему.

П.С. Блин, форматирование съехало...)


Это сообщение отредактировал(а) KelTron - 26.2.2009, 12:00

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  screen1.JPG 23,52 Kb


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
KelTron
Дата 26.2.2009, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 5
Всего: 38



После продолжительных поисков я всё - таки нашёл решение свой проблемы, сразу 2 способа)

Приведу их здесь, может кому - то пригодится:
1) В той же директории, что и csv файл создаём файл с именем schema.ini с таким содержимым
Код

[NameOfYourFile.csv]
Format=Delimited(;)
MaxScanRows=0

Значение разделителя, естественно, то что требуется

2) Изменяем реестр:
Код

RegistryKey rk = Registry.LocalMachine;
rk = rk.OpenSubKey("Software");
rk = rk.OpenSubKey("Microsoft");
rk = rk.OpenSubKey("Jet");
rk = rk.OpenSubKey("4.0");
rk = rk.OpenSubKey("Engines");
rk = rk.OpenSubKey("Text", RegistryKeyPermissionCheck.ReadWriteSubTree);
rk.SetValue("MaxScanRows", 0);


Удачи!


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0394 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.