powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / [c#] открыть dbf
25 сообщений из 25, страница 1 из 1
[c#] открыть dbf
    #37535808
Шпунтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер!
Хочется распарсить данный тип файла в объектную модель.
Как перевести его в объектный вид, чтобы можно было по наименованию атрибута(тэга) получить значение?
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37535810
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шпунтик,

Используйте ODBC.
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37535818
Шпунтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,

правильно ли я понял, что если я сделаю следующую вещь

Код: plaintext
1.
2.
3.
4.
5.
6.
string ConnectionString= @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\%DirectoryName%\;Extended Properties=dBASE IV;User ID=%User%;Password=%Password%";
OleDbConnection oleDbConnection = new OleDbConnection(ConnectionString);
oleDbConnection .Open();
OleDbCommand oleDbCommand = new OleDbCommand("SELECT * FROM [%FileName%]",oleDbConnection );
DataSet dataSet = new DataSet();
OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter(oleDbCommand );
oleDbDataAdapter .Fill(dataSet ,"%FileName%");

к сожалению не имею сейчас возможности проверить, но хочется заранее подготовится, ибо темпы авральные(
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37535835
Шпунтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шпунтик,

и как потом обращаться к dataSet для получения какого-либо значения?
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37535851
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шпунтик,

Не, я имел ввиду ODBC. Смотрите "источники данных ODBC". Настраиваете, а там - дело техники.
Можете этот источник, если хотите использовать как Linked Server, но это уже - перебор, имхо. Хотя, ху кновс... .
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37535855
Шпунтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шпунтик,

пока я добился по впн только того, что oleDbDataAdapter.Fill возвращает верное число экземпляров данных (криво написал, строк из ДБ вообщем) в dbf, но ума не приложу, как извлечь данные из DataSet

доступа к msdn сейчас к сожалению нет(
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37535894
Шпунтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeШпунтик,

Не, я имел ввиду ODBC. Смотрите "источники данных ODBC". Настраиваете, а там - дело техники.
Можете этот источник, если хотите использовать как Linked Server, но это уже - перебор, имхо. Хотя, ху кновс... .

какой в этом случае драйвер при подключении к файлу использовать?

я правда не понял в чём разница между OleDb и Odbc для моей задачи...

уточню её немножко:

нам присылают dbf'ки, мне же нужно их распарсить на c#, чтобы потом используя классы можно было без напряга сохранять в базу (по сути сделать некий чёрный ящик, чтобы те, кто с ним работаю не знали, что внутри, а ориентировались только на выходящие данные)

при чём тут линкование серверов я не очень понимаю)
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37535900
Шпунтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,

т.е. по большому счёт в том коде, что я написал сверху меня даже всё устраивает, только я не могу понять, как теперь извлекать данные из датасета
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37535929
Шпунтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шпунтик,

так, вроде разобрался как тащить данные, но т.к. они на кириллице, то выводятся абра-кадаброй, как поправить?)
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37902794
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может кто подскажет...
Прислали (и до конца года будут присылать) файлы DBF для экспорта данных в Oracle таблицы...
Цель: Прочитать записи в таблице DBF...
Пробую через Microsoft dBASE ODBC Driver (Standard)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
            string ConnectionString = @"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=d:\22\";
            using (OdbcConnection con = new OdbcConnection())
            {
                con.ConnectionString = ConnectionString;
                con.Open();
                string strSQL = "select * from mer2_201201.dbf";
                OdbcCommand myCmd = new OdbcCommand(strSQL, con);
                using (OdbcDataReader reader = myCmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Console.WriteLine("-> [TYP_DCL]= {0}  [MONTH]= {1}.",
                            reader["TYP_DCL"].ToString().Trim(),
                            reader["MONTH"].ToString().Trim()
                            );
                    }
                }
            }


Вылетает OdbcException
ERROR [42S02] [Microsoft][Драйвер ODBC dBase] Объект 'mer2_201201.dbf' не найден ядром базы данных Microsoft Jet. Проверьте существование объекта и правильность имени и пути.
На строке
Код: c#
1.
using (OdbcDataReader reader = myCmd.ExecuteReader())

Но файл на самом деле "d:\22\mer2_201201.dbf" имеет место жить... И я его просматриваю через DBFDesk.exe...

Через Microsoft dBASE ODBC Driver (Remote drives)
Код: c#
1.
            string ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};datasource=d:\22\";


Таже ситуация...

Через .NET Framework Data Provider for OLE DB
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
            // использование OLEDB
            string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\22\;Extended Properties=dBASE IV;User ID=Admin;Password=";
            using (OleDbConnection con = new OleDbConnection())
            {
                con.ConnectionString = ConnectionString;
                con.Open();
                string strSQL = "select * from mer2_201201.dbf";
                OleDbCommand myCmd = new OleDbCommand(strSQL, con);
                using (OleDbDataReader reader = myCmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Console.WriteLine("-> [TYP_DCL]= {0}  [MONTH]= {1}.",
                            reader["TYP_DCL"].ToString().Trim(),
                            reader["MONTH"].ToString().Trim()
                            );
                    }
                }
            }
            Console.ReadLine();


Та же ситуация...

У кого получалось парсить DBF файл подскажите плиз....
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37902800
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Уже точно не припомню, но вроде для DBF имя таблицы надо указывать в Data Source

Data Source=d:\22\mer2_201201.dbf
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37902802
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Уже точно не припомню, но вроде для DBF имя таблицы надо указывать в Data Source
Data Source=d:\22\mer2_201201.dbf
Тоже самое
что со строкой
Код: c#
1.
                string strSQL = "select * from mer2_201201.dbf";


или
Код: c#
1.
                string strSQL = "select * from mer2_201201";
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37902808
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Data source- Пишется с пробелом
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37902813
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилData source- Пишется с пробелом
Код: c#
1.
            string ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};Data Source=d:\22\mer2_201201.dbf";


Та же самая ошибка...
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37902814
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может у кого-то получится... (вложенный файл)
Я прогой DBFDesk.exe создал файл "mer2_201201.dbf" по аналогии присланному... Не все поля взял... Но все равно приблизительно то же самое...
Прошу помощи...
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37902816
Akelprg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир СА,

Попробуй так

Код: c#
1.
string ConnectionString = "provider=vfpoledb.1; data source=D:\\tests\\northwind\\filename.dbf"



С полученным датасет можно работать без оглядки на источник.
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37902824
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkelprgВладимир СА,
Попробуй так
Код: c#
1.
string ConnectionString = "provider=vfpoledb.1; data source=D:\\tests\\northwind\\filename.dbf"


С полученным датасет можно работать без оглядки на источник.Для этого нужен драйвер vfpoledb...
Нет коннекта...
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37902830
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заметил, что присланный файл формата DBaseIII
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37903035
Фотография Пылесос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вылетает OdbcException
ERROR [42S02] [Microsoft][Драйвер ODBC dBase] Объект 'mer2_201201.dbf' не найден ядром базы данных Microsoft Jet. Проверьте существование объекта и правильность имени и пути.


Уменьшить имя файла до 8.3
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37903155
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeШпунтик,

Используйте ODBC.

зачем советуете хрень,
как я понял ТС умеет получать данные из базы, но умеет работать с DataSet
так Шпунтик?
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37903203
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbf формат - прост как 3 копейки, надёжный способ чтения - без использования OLEDB/ODBC
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37903512
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПылесосВылетает OdbcException
ERROR [42S02] [Microsoft][Драйвер ODBC dBase] Объект 'mer2_201201.dbf' не найден ядром базы данных Microsoft Jet. Проверьте существование объекта и правильность имени и пути.
Уменьшить имя файла до 8.3Точно... Спасибо...
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37903514
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилdbf формат - прост как 3 копейки, надёжный способ чтения - без использования OLEDB/ODBCЧем? и Как?
...
Рейтинг: 0 / 0
[c#] открыть dbf
    #37903590
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Владимир САИзопропилdbf формат - прост как 3 копейки, надёжный способ чтения - без использования OLEDB/ODBCЧем? и Как?
DBF -это текстовой файл с полями фиксированной длины. Имеет заголовок в котором описаны длины и типы полей.
Чем и как? Сначала головой и гуглем, а потом любым средством программирования
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
[c#] открыть dbf
    #38954186
ПылесосВылетает OdbcException
ERROR [42S02] [Microsoft][Драйвер ODBC dBase] Объект 'mer2_201201.dbf' не найден ядром базы данных Microsoft Jet. Проверьте существование объекта и правильность имени и пути.


Уменьшить имя файла до 8.3

Спасли мое время!
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / [c#] открыть dbf
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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