Shaheer Rizwan Ответов: 2

Чтение и запись datagridview в CSV-файл


В программе, которую я сейчас создаю, у меня есть текстовые поля, которые при заполнении добавляют строку в DataGridView.

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

Наряду с этим, я хочу, чтобы это было так, когда я открываю/запускаю решение, чтобы все задачи были загружены в DataGridView.

Какой-то побочный вопрос?
- Как я могу создать его так, чтобы при выборе строки с помощью функции checkbox на DataGridView, чтобы затем отправить эту строку в другой DataGridView в другой форме.

- Должен ли я вместо этого записать все данные в текстовые файлы?


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

Приведенный ниже код используется для создания новой записи, когда текстовые поля заполнены и нажата кнопка confrim, она записывается в новую строку в dataGridView (dgvGeneral)

 Private Sub btnAddTask_Click(sender As Object, e As EventArgs) Handles btnAddTask.Click
Dim dgvGeneralRow As Object() = New Object() {Nothing, txtTaskName.Text, txtTaskTag1.Text, cmbPriority.SelectedItem.ToString(),dateDUE.Value.ToShortDateString(), txtLink.Text, txtNoteEntry.Text}

        dataGVGeneral.Rows.Add(dgvGeneralRow)
        txtTaskName.Text = ""
        txtTaskTag1.Text = ""
        txtLink.Text = ""
        txtNoteEntry.Text = ""

2 Ответов

Рейтинг:
1

Richard MacCutchan

Как OriginalGriff говорит о том, используя что-то вроде JSON-это гораздо лучше идея, в эти дни. Однако если данные представляются вам в виде CSV, то в следующей статье показан простой способ получить их прямо в DataGridView:
Использование OleDb для импорта текстовых файлов (tab, CSV, custom)[^].

Обратите внимание, что Microsoft Jet engine был заменен драйвером ACE Загрузите распространяемый пакет Microsoft Access Database Engine 2016 из официального центра загрузки Microsoft[^].


Shaheer Rizwan

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

Shaheer Rizwan

Я должен отметить, что на самом деле у меня есть DataGridView, предназначенный для заголовков (заголовков столбцов), и я не хочу его менять. Я просто хочу, чтобы это было так, когда текстовые поля заполнены и подтверждены, а задача добавлена в DataGridView, чтобы она сохранялась в CSV-файл (или XML или текст) и автоматически загружалась при открытии программы. Я также хочу, чтобы выбранная строка (через столбец dataGridViewCheckBoxColumn) была перемещена в другой DataGridView в другой форме.

Richard MacCutchan

Ни одна из этих вещей не является особенно сложной. Сохранение DataGridView в XML требует очень мало кода, как описано в разделе Как обновить XML - файл из datagridview[^Перемещение строки из одной сетки в другую аналогично просто вопрос создания экземпляра второй формы и вызова некоторого метода, который принимает данные строки в качестве своего параметра.

Shaheer Rizwan

Спасибо я посмотрю

Рейтинг:
0

OriginalGriff

CSV может быть забавным материалом, особенно при использовании ввода "свободного формата", такого как имена задач, описания и т. д., а пользовательский ввод, содержащий запятые, может полностью испортить его, если вы не будете дважды цитировать записи. Затем вы должны избежать двойных кавычек, введенных пользователем, и так далее. И чем вам придется разбирать эту кучу, когда вы будете читать ее обратно.

В настоящее время, вероятно, лучше использовать JSON - я использую NewtonSoft (выполняю Поиск Nuget), который может обрабатывать практически любой источник данных, который вы бросаете в него: Таблицы данных, коллекции, он действительно не возражает.