0 / 0 / 0
Регистрация: 10.06.2019
Сообщений: 95
1

Как сохранить данные из DataTable в DBF файл

22.08.2019, 11:50. Показов 3274. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста, есть заполненный dataTable, в нём больше 40 полей и есть dbf файл, с такими же столбцами - но пустой. Его я вытащил из blob поля другой БД (он служит как шаблон, с помощью него я и создал поля в dataTable, а после заполнил их).
Как мне, используя c#, заполнить этот DBF файл?
Почему я не заполнил с помощью INSERT сразу DBF ? Потому что dataTable я заполняю SELECT`ами из других таблиц другой БД.
(Использую OleDB & СУБД Firebird).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.08.2019, 11:50
Ответы с готовыми решениями:

Как сохранить открытый в приложении файл как новый файл DB или DBF?
Люди, помогите добавить в приложение функцию сохранения файла DB или DBF как нового файла, после...

Как открыть и сохранить файл .dbf?
Через ODBC (Microsoft Visual FoxPro Driver)открыл файл .dbf (форма для заполнения реквизитов). Как...

Экспорт из DataTable в .dbf файл
Всем здравствуйте! Проблема следующая: есть DataTable, а которой хранятся данные. Необходимо...

Сохранение данных из DataTable в dbf файл
Помогите пожалуйста, есть созданный и заполненный DataTable. Необходимо сохранить его в dbf файл на...

2
88 / 62 / 18
Регистрация: 09.12.2015
Сообщений: 183
22.08.2019, 12:01 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
public static void DataSet2DBF(string fileName, DataSet dataSet)
    {
        ArrayList list = new ArrayList();
 
        if (File.Exists(Path + fileName + ".dbf"))
        {
            File.Delete(Path + fileName + ".dbf");
        }
 
        string createSql = "create table " + fileName + " (";
 
        foreach (DataColumn dc in dataSet.Tables[0].Columns)
        {
            string fieldName = dc.ColumnName;
 
            string type = dc.DataType.ToString();
 
            switch (type)
            {
                case "System.String":
                    type = "varchar(100)";
                    break;
 
                case "System.Boolean":
                    type = "varchar(10)";
                    break;
 
                case "System.Int32":
                    type = "int";
                    break;
 
                case "System.Double":
                    type = "Double";
                    break;
 
                case "System.DateTime":
                    type = "TimeStamp";
                    break;
            }
 
            createSql = createSql + "[" + fieldName + "]" + " " + type + ",";
 
            list.Add(fieldName);
        }
 
        createSql = createSql.Substring(0, createSql.Length - 1) + ")";
 
        OleDbConnection con = new OleDbConnection(GetConnection(Path));
 
        OleDbCommand cmd = new OleDbCommand();
 
        cmd.Connection = con;
 
        con.Open();
 
        cmd.CommandText = createSql;
 
        cmd.ExecuteNonQuery();
 
        foreach (DataRow row in dataSet.Tables[0].Rows)
        {
            string insertSql = "insert into " + fileName + " values(";
 
            for (int i = 0; i < list.Count; i++)
            {
                insertSql = insertSql + "'" + ReplaceEscape(row[list[i].ToString()].ToString()) + "',";
            }
 
            insertSql = insertSql.Substring(0, insertSql.Length - 1) + ")";
 
            cmd.CommandText = insertSql;
 
            cmd.ExecuteNonQuery();
        }
 
        con.Close();
    }
 
    private static string GetConnection(string path)
    {
        return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=dBASE IV;";
    }
 
    public static string ReplaceEscape(string str)
    {
        str = str.Replace("'", "''");
        return str;
    }
0
0 / 0 / 0
Регистрация: 10.06.2019
Сообщений: 95
22.08.2019, 12:30  [ТС] 3
Да, видел этот способ. Но небольшая загвоздка в том, что там используется DataSet. Возможно вы знаете как ему можно присвоить объект DataTable ?
(После этого, я смог проверить работает ли этот способ).
p.s. извините, если вопрос вам покажется глупым.

Добавлено через 16 секунд
Да, видел этот способ. Но небольшая загвоздка в том, что там используется DataSet. Возможно вы знаете как ему можно присвоить объект DataTable ?
(После этого, я смог проверить работает ли этот способ).
p.s. извините, если вопрос вам покажется глупым.

Добавлено через 1 минуту
Так, ответ нашел сам же на свой вопрос через секунду.
ds.Tables.Add(myTable);
Пардон

Добавлено через 15 секунд
Так, ответ нашел сам же на свой вопрос через секунду.
ds.Tables.Add(myTable);
Пардон

Добавлено через 52 секунды
Возможно кто то ещё знает другой метод решения моей задачи? Буду рад услышать все варианты!

Добавлено через 15 секунд
Возможно кто то ещё знает другой метод решения моей задачи? Буду рад услышать все варианты!
0
22.08.2019, 12:30
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.08.2019, 12:30
Помогаю со студенческими работами здесь

VBA, как макросом сохранить лист в dbf`ный файл?
подскажите новичку в VBA как макросом сохранить лист в dbf`ный файл... и чтобы еще параметры...

Сохранить данные с сервера на клиенте в dbf
Всем привет. 8.2. Управляемые формы. Тонкий клиент. Надо получить данные с сервера и обработать и...

Как открыть DBF-файл, выбрать нужные данные и передать их в Текстбоксы ? HELP ME !!!
1. Открываем c: empwork.dbf 2. выбираем (SQL) SELECT A1, A2, A3, A4 FROM WORK WHERE A1=Text1.Text...

Как сохранить данные в файл
Здраствуйте! Есть несколько текстовых данных около 5, которые нужно объединить и сохранить в файле....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как вставить элемент в массив на указанный индекс в JavaScript
hw_wired 24.01.2025
Массивы являются одной из фундаментальных структур данных в JavaScript, предоставляющей разработчикам мощный инструмент для хранения и управления упорядоченными наборами данных. Они позволяют хранить. . .
Чем отличаются HashMap и Hashtable в Java
hw_wired 24.01.2025
В мире разработки на Java существует множество инструментов для работы с коллекциями данных, и среди них особое место занимают структуры данных для хранения пар ключ-значение. HashMap и Hashtable. . .
Как конвертировать видео в GIF
hw_wired 24.01.2025
В современном мире анимированные изображения стали неотъемлемой частью цифровой коммуникации. Формат GIF (Graphics Interchange Format) представляет собой особый тип файлов, который позволяет. . .
Как скопировать текст в буфер обмена на JavaScript во всех браузерах
hw_wired 24.01.2025
Копирование текста в буфер обмена стало неотъемлемой частью современных веб-приложений, значительно улучшающей пользовательский опыт и упрощающей работу с контентом. В эпоху активного обмена. . .
Как скрыть клавиатуру на Android
hw_wired 24.01.2025
При разработке Android-приложений часто возникает необходимость управлять видимостью экранной клавиатуры для улучшения пользовательского опыта. Одним из наиболее эффективных способов контроля. . .
Как обучить нейросеть создания картинок на Python
bytestream 24.01.2025
В эпоху цифровых технологий искусственный интеллект становится неотъемлемой частью творческого процесса. Особое место в этой области занимает разработка и обучение нейронных сетей для создания. . .
Как обучить нейросеть генерации текста на Python
bytestream 24.01.2025
В современном мире искусственный интеллект и машинное обучение становятся неотъемлемой частью многих технологических решений. Одной из наиболее интересных и востребованных задач в этой области. . .
Машинное обучение на Python
bytestream 24.01.2025
Введение в машинное обучение на Python Машинное обучение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, которая позволяет компьютерным системам. . .
Как удалить вирус-майнер с компьютера
hw_wired 24.01.2025
Вирусы-майнеры стали одной из наиболее серьезных угроз для пользователей компьютеров. Эти вредоносные программы тайно используют вычислительные ресурсы зараженного устройства для добычи криптовалюты. . .
Что такое веб-сервер, для чего он нужен и как работает
bytestream 24.01.2025
В современную эпоху цифровых технологий веб-сервер является фундаментальным компонентом интернет-инфраструктуры, обеспечивающим функционирование множества онлайн-сервисов и веб-сайтов. Этот. . .
Как в цикле for перебрать все элементы в словаре в Python
bytestream 24.01.2025
Словари в Python представляют собой мощные структуры данных, которые позволяют хранить информацию в формате ключ-значение. Эта особенность делает их незаменимыми при работе с данными, где требуется. . .
Как отменить rebase в Git
hw_wired 24.01.2025
Git rebase представляет собой мощный инструмент для управления историей коммитов в системе контроля версий Git. Этот механизм позволяет разработчикам изменять последовательность, комбинировать или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru