Чтение из файла .txt, а затем экспорт данных в DataGridView

Я знаю, что это смешной вопрос, но, Боже, я провел весь свой последний день, стуча им по голове, и это просто не сработает! Чертов учитель даже не упомянул об импорте данных в DataGridView!

У меня есть домашнее задание C # Windows Forms: мне нужно читать данные из.txt (пользователи) файл и вставьте его вDataGridView таблица в C # Microsoft Visual Studio 2012. Данные вusers.txt что-то вроде этого с разделителями табуляции:

-------------------------------------------------
    ID    Name  Surname Telephone VIP Age Balance
-------------------------------------------------
    0001  John  Killer  1-500-300  0  13  2272
    0002  Name  Surname 1-500-200  0  27  225
    0003  Martin King   1-500-400  1  41  1070

Проигнорируйте имена меток (ID, Имя, Фамилия ...), я написал их только для ясности, настоящий файл содержит только необработанные пользовательские данные.

Теперь я ранее создал классUsers, который имеет эти поля:

Я БЫимяФамилиятелефонVIPКупленные вещиЦена

а затем создал DataGridView (usersDataGridView) и импортировал поля из классаUsers в этом.

Хорошо, алгоритмически это довольно простая задача, не так ли?

Моя идея заключалась в следующем: чтение содержимого файла сStreamReaderсохраняя каждую строку в строку, а затем разбивая строку на части, используя\t в качестве разделителя сString.Split.

Однако, как только я разбил эти строки ... ну, я в принципе не представляю, как импортировать их в DataGridView (я "знаю", что это должно быть какDataSource но ... пользовательский интерфейс Visual Studio 2012 кажется мне слишком "сложным", чтобы я мог понять, как я могу указать строку или какой-то чертов тип данных в качестве источника данных).

Мои жалкие попытки привели меня к следующему:

Попытка 1:

public void Test_1()
{
    string filePath = string.Format("{0}/databases/{1}", AppDomain.CurrentDomain.BaseDirectory, "user_db.txt");

    string[] textData = System.IO.File.ReadAllLines(filePath);
    string[] headers = textData[0].Split('\t');

    DataTable dataTable1 = new DataTable();

    foreach (string header in headers)
        dataTable1.Columns.Add(header, typeof(string), null);

    for (int i = 1; i < textData.Length; i++)
        dataTable1.Rows.Add(textData[i].Split('\t'));

    //Set the DataSource of DataGridView to the DataTable
    promotionsDataGridView.DataSource = dataTable1;
}

Попытка 2:

public void ReadFromFile()
{
    string delimeter = "\t";
    string tableName = "BooksTable";
    string fileName = string.Format("{0}/databases/{1}", AppDomain.CurrentDomain.BaseDirectory, "bigtest.sql");

    DataSet dataset = new DataSet();
    StreamReader sr = new StreamReader(fileName);

    dataset.Tables.Add(tableName);
    dataset.Tables[tableName].Columns.Add("InventoryID");
    dataset.Tables[tableName].Columns.Add("Brand");
    dataset.Tables[tableName].Columns.Add("Category");
    dataset.Tables[tableName].Columns.Add("Description");
    dataset.Tables[tableName].Columns.Add("Promotions");
    dataset.Tables[tableName].Columns.Add("Quantity");
    dataset.Tables[tableName].Columns.Add("Price");

    string allData = sr.ReadToEnd();
    string[] rows = allData.Split("\r".ToCharArray());

    foreach (string r in rows)
    {
        string[] items = r.Split(delimeter.ToCharArray());
        dataset.Tables[tableName].Rows.Add(items);
    }
    this.productsDataGridView.DataSource = dataset.Tables[0].DefaultView;
}

Однако я продолжаю получать какую-то ерунду

Размер входного массива больше любого

Так как у меня буквально нет опыта работы сDataGridView Я предполагаю, что у меня есть некоторые ужасные ошибки на уровне алгоритма, верно ?!

Пожалуйста, кто-нибудь, помогите мне! Я прочитал, скопировал, вставил, скомпилировал и отладил около 20 различных проблем на аналогичную тему, и я до сих пор нигде нет!

Что такоеправильный способ чтения данных из.txt файл, а затем вставить его в DataGridView?

Любая помощь или ответы высоко ценятся!

Ответы на вопрос(1)

Ваш ответ на вопрос