powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / oledb и csv
15 сообщений из 15, страница 1 из 1
oledb и csv
    #39411416
saley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Подскажите в чём может быть проблема,
не считывает csv и ошибки не выдаёт
код скачал из инета.
приложение написано под Х86, на компе win-7 64 bit.
с экселем работает программа без проблем.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
public DataTable ReadCSV(string fileName)
        {
            DataTable dt = new DataTable("Data");
            using (OleDbConnection cnn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"" +
                Path.GetDirectoryName (fileName) + "\";Extended Properties='text;HDR=yes;FMT=Delimited(,)';"))
            {
                using(OleDbCommand ccmd = new OleDbCommand (string.Format( "select * from [{0}]",new FileInfo(fileName).Name),cnn))
                {
                    cnn.Open();
                    using(OleDbDataAdapter adapter = new OleDbDataAdapter (ccmd))
                    {
                        adapter.Fill(dt);
                    }
                    cnn.Close();
                }
            }
            return dt;
        }
...
Рейтинг: 0 / 0
oledb и csv
    #39412121
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
saley,

Попробуйте без одинарных кавычек

Код: c#
1.
2.
3.
using (OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""" +
                Path.GetDirectoryName (fileName) + @""";Extended Properties=""text;HDR=yes;FMT=Delimited(,)"";"))
            {
...
Рейтинг: 0 / 0
oledb и csv
    #39412481
saley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробывал... не помогло...
Почему-то подхватывает только один столбец (((
Тестовый файл прикрепил.
...
Рейтинг: 0 / 0
oledb и csv
    #39412717
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saley,

жми
...
Рейтинг: 0 / 0
oledb и csv
    #39412764
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
saleyПопробывал... не помогло...
Почему-то подхватывает только один столбец (((
Тестовый файл прикрепил.

http://www.sql.ru/forum/actualfile.aspx?id=20254350] Приложенный файл (1234.csv - 3Kb)

1. У Вас нет заголовков в первой строке, поэтому HDR=No
2. Если заменить в файле разделитель ";" на ",", то все отлично работает.

Почему в данном случае не работает FMT=Delimited(;) я не знаю.
...
Рейтинг: 0 / 0
oledb и csv
    #39412925
saley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ на вопрос, почему не работает, я так понимаю
здесь
...
Рейтинг: 0 / 0
oledb и csv
    #39412943
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
saleyОтвет на вопрос, почему не работает, я так понимаю
здесь
Неправильно понимаете. Там беспочвенное заявление, что так должно работать. Даже без примера

Вот еще одна .

Тут хотя бы пример есть

На самом деле нифига не работает. На FMT=Delimited([char]) просто не обращается внимания.

Ради интереса сделал запятую разделителем в файле, а в FMT=Delimited указал звездочку *. Все отлично закачалось.
=====================

Интересно, что дома не работало со Schema.ini, а на работе вдруг заработало. Дома W10 домашняя, на работе W7 проф. И там и там VS 2015 Community/

Вот это в INI

Код: c#
1.
2.
3.
[1234.csv]
ColNameHeader=False
Format=Delimited(;)
...
Рейтинг: 0 / 0
oledb и csv
    #39412956
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
В итоге получилось так

Код: 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.
51.
using System.Data;
using System.Data.OleDb;
using System.IO;

namespace csv
{
    class Program
    {
        static void Main(string[] args)
        {
            ReadCSV(@"d:\1234.csv");
        }

        public static DataTable ReadCSV(string fileName)
        {
            FileInfo fi = new FileInfo(fileName);
            string schema = string.Format(
@"[{0}]
ColNameHeader = False
Format = Delimited(;)", fi.Name);

            DataTable dt = new DataTable("Data");
            string schemaName = Path.Combine(fi.DirectoryName, "schema.ini");
            try {
                
                File.WriteAllText(schemaName, schema);
                string constr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"{0}\""
                    +";Extended Properties='text';", fi.DirectoryName);
                using (OleDbConnection cnn = new OleDbConnection(constr))
                {
                    using (OleDbCommand ccmd = new OleDbCommand(
                        string.Format("select * from [{0}]", fi.Name), cnn))
                    {
                        cnn.Open();
                        using (OleDbDataAdapter adapter = new OleDbDataAdapter(ccmd))
                        {
                            adapter.Fill(dt);
                        }
                        cnn.Close();
                    }
                }
            }
            finally
            {
                if (File.Exists(schemaName))
                    File.Delete(schemaName);
            }
            return dt;
        }
    }
}
...
Рейтинг: 0 / 0
oledb и csv
    #39412983
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

Еще здесь можешь подправить, создавать файл не надо будет.
Код: c#
1.
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Text
...
Рейтинг: 0 / 0
oledb и csv
    #39412984
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
refregCat2,

Еще здесь можешь подправить, создавать файл не надо будет.
Код: c#
1.
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Text


Я бы не стал лезть в реестр. Может поломаться в программах, где запятая по умолчанию
...
Рейтинг: 0 / 0
oledb и csv
    #39412986
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2refregCat2,

Еще здесь можешь подправить, создавать файл не надо будет.
Код: c#
1.
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Text



Я бы не стал лезть в реестр. Может поломаться в программах, где запятая по умолчаниюТак ты можешь программно. Туда-сюда.

ЗЫ. Я бы не стал использовать jet 4. Но на вкус и цвет все фломастеры разные (с)
...
Рейтинг: 0 / 0
oledb и csv
    #39413136
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
refregак ты можешь программно. Туда-сюда.

ЗЫ. Я бы не стал использовать jet 4. Но на вкус и цвет все фломастеры разные (с)
Кстати, если ты внимательно посмотришь на начало топика, то поймешь, что ЭТО не мне надо. Я просто кинул решение
...
Рейтинг: 0 / 0
oledb и csv
    #39413178
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем вообще csv-файлы читать через oledb?
TextFieldParser
отлично справляется
...
Рейтинг: 0 / 0
oledb и csv
    #39413296
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Arm79зачем вообще csv-файлы читать через oledb?
TextFieldParser отлично справляется

Мало ли какие надобности бывают. Может сразу таблицу в гриде показывать.
Если в базу загонять, то я бы сразу BCP применил
...
Рейтинг: 0 / 0
oledb и csv
    #39414514
saley
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, большое спасибо за советы и помощь.
Мне надо было из csv в гриде данные отобразить.
Искал разные варианты, в частности OLEDB.
Воспользуюсь TextFieldParser.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / oledb и csv
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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