EngAb1989 Ответов: 1

Копирование данных в локальную базу данных


В моем Porject у меня есть локальная база данных, которая создается путем добавления нового элемента в мое приложение windows form (Service-base-Database), и в проводнике сервера я построил свои собственные столбцы,например (ID,X, Y, Z).

Идея проекта заключается в том, что я хочу прочитать текстовый или csv-файл и отобразить свои данные в GridView, а также сохранить все значения в моей локальной базе данных (*.mdf). В настоящее время я ищу функцию или способ хранения моих данных в моей локальной базе данных.

Конечно, я много искал об этой проблеме, но не нашел ничего похожего на мою проблему, я нашел, как вставить данные в sql server с помощью sqlBULKcopy, который не работает в моем случае.

Есть Идеи?

Что я уже пробовал:

<pre>public void ImportData()
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Title = "Import text file";
            ofd.InitialDirectory = @"C:\";
            ofd.Multiselect = true;
            ofd.Filter = "txt file (*.txt)|*.txt| all files (*.*)|*.*";

            try
            {
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    path = ofd.FileName;

                }

                string[] lines = File.ReadAllLines(ofd.FileName);  // read all lines 
                string[] value;     // contents
                
              //  int count = 0;
                for (int i = 0; i < lines.Length; i++)
                {
                    char c = ',';
                    value = lines[i].ToString().Split(c);    //    -  -  - 
                                                             //    -  -  -
                    string[] rows = new string[value.Length];

                    for (int j = 0; j < value.Length; j++)
                    {
                        rows[j] = value[j].Trim();
                       // listBox1.Items.Add(rows[j]);
                       // listBox1.Items.Add(value.Length);
                      //  listBox1.Items.Add(lines.Length);
                    }
                    dt.Rows.Add(rows); 
                    MessageBox.Show("The data has been successfully read");
                }
                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


Выше код просто для чтения моего текстового файла и получения DataTable (dt)

Теперь я хочу вставить dt в свою локальную базу данных и сохранить

Я попробовал этот код

tabledatagridview.datasource =dt; 
this.validate()
this.tableInfoBindingSource.EndEdite()
this.tableAdapterManager.UpdateAll(this.Dataset)

1 Ответов

Рейтинг:
1

OriginalGriff

CSV не обязательно должен быть просто "разделен запятыми" - данные CSV также могут содержать двойные кавычки и новые строки:

"Mike Jones", "2, Brain Drive, Fullchester"

Вместо того чтобы "заваривать свой собственный" CSV-ридер, попробуйте вот это: Быстрый читатель CSV[^] - он делает всю ослиную работу за вас!
Он может возвращать DataTable, который вы можете либо отправить непосредственно в свою БД через DataAdapter, либо отредактировать, чтобы получить только те данные, которые вы хотите, прежде чем отправлять их в БД: Объект Odbcdataadapter Класса (Система.Данных.Через ODBC) | Microsoft В Документы[^]


EngAb1989

Большое спасибо. Я ценю твои намеки.