Czytanie z pliku .txt, a następnie eksportowanie danych do DataGridView

Wiem, że to śmieszne pytanie, ale Boże, spędziłem cały ostatni dzień, waląc nim w głowę i to po prostu nie zadziała! Cholerny nauczyciel nawet nie wspominał o importowaniu danych do DataGridView!

Mam zadanie domowe z C # Windows Forms: muszę czytać dane z.txt (użytkownicy) plik i wklej go doDataGridView tabela w C # Microsoft Visual Studio 2012. Dane wusers.txt plik jest podobny do tego z ogranicznikami TAB:

-------------------------------------------------
    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

Zignoruj ​​nazwy etykiet (ID, Imię, Nazwisko ...), napisałem je tylko dla jasności, prawdziwy plik zawiera tylko surowe dane użytkownika.

Wcześniej stworzyłem klasęUsers, który ma następujące pola:

IDImięNazwiskoTelefonVIPKupione przedmiotyCena £

a następnie utworzył DataGridView (usersDataGridView) i zaimportował pola z klasyUsers w tym.

OK, algorytmicznie jest to łatwe zadanie, prawda?

Mój pomysł był następujący: czytanie zawartości pliku za pomocąStreamReader, zapisywanie każdej linii do łańcucha, a następnie dzielenie łańcucha na części za pomocą\t jako ogranicznik zString.Split.

Jednak gdy już podzielę te linie ... cóż, w zasadzie nie mam pojęcia, jak zaimportować je do DataGridView („wiem”, że powinno to byćDataSource ale ... interfejs użytkownika Visual Studio 2012 wydaje się być zbyt „skomplikowany”, abym mógł wymyślić, w jaki sposób mogę wskazać ciąg lub jakikolwiek cholerny typ danych, który jest źródłem danych).

Moje żałosne próby doprowadziły mnie do następujących:

Próba 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;
}

Próba 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;
}

Jednak wciąż dostaję jakiś gówniany błąd

Rozmiar tablicy wejściowej jest większy niż cokolwiek innego

Ponieważ nie mam dosłownie żadnego doświadczeniaDataGridView Myślę, że mam kilka okropnych błędów na poziomie algorytmicznym, prawda ?!

Proszę, ktokolwiek, pomóż mi! Czytałem, kopiowałem, wklejałem, kompilowałem i debugowałem z 20 różnych problemów na podobny temat i wciąż jestem nigdzie!

Co jestwłaściwy sposób odczytywania danych z a.txt plik, a następnie wklejenie go do DataGridView?

Wszelka pomoc lub odpowiedzi są bardzo mile widziane!

questionAnswers(1)

yourAnswerToTheQuestion