Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение данных из DataGrid в файл, C# 2008 
:(
    Опции темы
Danillab
  Дата 23.3.2010, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Добрый день, подскажите как правильно организовать сохранение данных в файл

Есть код для чтения файла и заполнения dataGrid
 
Код

private void Form1_Load(object sender, EventArgs e)
        {
            // Загрузка данных  
            List<string[]> testParse = parseCSV("c://TestParse.csv");
            foreach (string[] row in testParse)
            {
                dataGrid.Rows.Add(row);
            }   
        }

        public List<string[]> parseCSV(string path)
        {
            List<string[]> parsedData = new List<string[]>();

            using (StreamReader readFile = new StreamReader(path))
            {
                string line;
                string[] row;

                while ((line = readFile.ReadLine()) != null)
                {
                    row = line.Split(';');
                    parsedData.Add(row);
                }
            }

            return parsedData;
        }




Данные
Код

Фамилия2;Имя1;89898224778;150
Фамилия3;Имя2;89898224771;150
Фамилия4;Имя3;89898224772;150
Фамилия5;Имя4;89898224773;150
Фамилия6;Имя5;89898224774;150
Фамилия7;Имя6;89898224775;150
Фамилия8;Имя7;89898224778;150


Набросок кода для сохранения данных в файл
Код
        private void bSave_Click(object sender, EventArgs e)
        {

            using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\TestParse_new.csv"))
            {
                /*foreach (string line in ???)
                {
                    file.WriteLine(line);
                    
                }*/
            }

        }


Подскажите как правильно сделать сохранение в файл.

Это сообщение отредактировал(а) Danillab - 23.3.2010, 21:14
PM MAIL   Вверх
Уттара
Дата 24.3.2010, 02:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 10.12.2008

Репутация: 1
Всего: 1



Проект прикрепил к сообщению, думаю это то, что вам надо   smile 
Заодно код загрузки из CSV файла стал в два раза короче  smile 

Это сообщение отредактировал(а) Уттара - 24.3.2010, 03:38

Присоединённый файл ( Кол-во скачиваний: 31 )
Присоединённый файл  WindowsFormsApplication1.rar 6,17 Kb
PM MAIL   Вверх
Danillab
Дата 24.3.2010, 07:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Уттара спасибо, так значительно красивее код.

Задан поиск так
Код

        private void data_show()
        {
            dtView = new DataView(dt);
            dtView.RowFilter = comboBox1.Text + " like '%" + tbSearch.Text + "%'";
            dataGrid.DataSource = dtView.ToTable();
            dataGrid.Refresh();
        }

        private void tbSearch_TextChanged(object sender, EventArgs e)
        {
            data_show();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            data_show();
        }


Но вот проблема если нажать сохранить, по сохраняет только текущие значения.

Как можно сбросить фильтр перед записью?
PM MAIL   Вверх
Уттара
Дата 24.3.2010, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 10.12.2008

Репутация: 1
Всего: 1



Не знаю, но можно попробовать вызвать вот этот код перед сохранением:
Код

  private void data_show()
        {
            dtView = new DataView(dt);
            dataGrid.DataSource = dtView.ToTable();
            dataGrid.Refresh();
        }

И только после этого сохранять  smile

Это сообщение отредактировал(а) Уттара - 24.3.2010, 17:19
PM MAIL   Вверх
gambit
Дата 24.3.2010, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 5
Всего: 40



а что мешает воспользоваться стандартным методом датагрида, который сериализует в XML???

Добавлено через 31 секунду
или нужна конкретная структура?
PM MAIL ICQ Skype   Вверх
Danillab
Дата 24.3.2010, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Необходимо чтоб результаты сохранялись именно в CSV
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1187 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.