сохранение данных из запроса в виде файла CSV - PullRequest
3 голосов
/ 31 марта 2011

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

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

private void button1_Click(object sender, EventArgs e)
{
    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
    const string filter = "CSV file (*.csv)|*.csv| All Files (*.*)|*.*";
    const string header = "Animal_Name,Hair,Feathers,Eggs,Milk,Airborne,Aquatic,Predator,Toothed,Backbone,Breathes,Venomous,Fins,Legs,Tail,Domestic,Catsize,Type";
    StreamWriter writer = null;

    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {        
        filter = saveFileDialog1.FileName;
        writer = new StreamWriter(filter);

        writer.WriteLine(header);
        foreach (Animal animal in animalQuery)
        {
            writer.Write(animal);
        }  
        writer.Close();
    }
}

Это код кнопки сохранения, но есть ошибки:

filter = saveFileDialog1.FileName;
writer = new StreamWriter(filter); 

Я не уверен почему.

1 Ответ

6 голосов
/ 31 марта 2011

, если ваш код не является точным, вы не можете назначить постоянную переменную для своего кода, говоря:

filter = saveFileDialog1.FileName;

Вы объявили «filter» как постоянную переменную далее:

const string filter = "CSV-файл ( .csv) | .csv | Все файлы (. ) | . ";

Попробуйте это:

        SaveFileDialog saveFileDialog1 = new SaveFileDialog();
        string filter = "CSV file (*.csv)|*.csv| All Files (*.*)|*.*";
        saveFileDialog1.Filter = filter;
        const string header = "Animal_Name,Hair,Feathers,Eggs,Milk,Airborne,Aquatic,Predator,Toothed,Backbone,Breathes,Venomous,Fins,Legs,Tail,Domestic,Catsize,Type";
        StreamWriter writer = null;

        if (saveFileDialog1.ShowDialog() == DialogResult.OK)
        {
            filter = saveFileDialog1.FileName;
            writer = new StreamWriter(filter);

            writer.WriteLine(header);

            writer.Close();
        }

Вы используете свойство SavefileDialog «Фильтр», чтобы определить свой список для фильтрации.

...