перебирая файл, чтобы добавить его - PullRequest
0 голосов
/ 10 декабря 2018

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

Я открыт для того, чтобы делать это по-другому, но у меня были проблемы с пониманием многих других методов, с которыми я сталкивался.Я новичок, поэтому мне нужно простое решение или очень подробное объяснение, чтобы я действительно понял, что делает код.

  private void buttonAllOrders_Click(object sender, EventArgs e)
    {
        // call method to read file
        string[] allLines = ReadFile();
        // add columns
        dataGridView1.Columns.Add("DateColumn", "Date");
        dataGridView1.Columns.Add("LemonColumn", "Lemon");
        dataGridView1.Columns.Add("TrefoilColumn", "Trefoils");
        dataGridView1.Columns.Add("DSDColumn", "Do-Si-Dos");
        dataGridView1.Columns.Add("SamoasColumn", "Samoas");
        dataGridView1.Columns.Add("TagsColumn", "Tagalongs");
        dataGridView1.Columns.Add("ThinMintsColumn", "Thin Mints");

        // loop through array to populate each row
        for (int i = 0; i < allLines.Length; i++)
        {
            dataGridView1.Rows.Add(allLines[0], allLines[1], allLines[2], allLines[3], allLines[4],
                allLines[5], allLines[6], allLines[7] );
        }

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Та же идея, что и у Рида, чуть меньше печатать, и я думаю, что у Рида не будет столбцов.Ваш код показывает 7 столбцов.

private void OPCode()
    {
        dataGridView1.Columns.Add("DateColumn", "Date");
        dataGridView1.Columns.Add("LemonColumn", "Lemon");
        dataGridView1.Columns.Add("TrefoilColumn", "Trefoils");
        dataGridView1.Columns.Add("DSDColumn", "Do-Si-Dos");
        dataGridView1.Columns.Add("SamoasColumn", "Samoas");
        dataGridView1.Columns.Add("TagsColumn", "Tagalongs");
        dataGridView1.Columns.Add("ThinMintsColumn", "Thin Mints");

        string[] alllines = File.ReadAllLines("Path to file");
        //Create an array to hold values for the row
        string[] row = new string[7];
        //loop through all the lines in the file but step by 7
        //because we will use the lines inbetween to populate each row
        for (int i = 0; i < alllines.Count(); i += 7)
        {
            for (int x = 0; x < 7; x++)
            {
                row[x] = alllines[x + i];
            }
            dataGridView1.Rows.Add(row);
        }
    }
0 голосов
/ 10 декабря 2018

Ваш цикл в настоящее время создает новую строку, используя только первые 8 элементов вашего массива 'allLines'.

Возможно, вы захотите сделать что-то подобное.

for (int i = 0; i < allLines.Length; i += 8)
{
    dataGridView1.Rows.Add(allLines[i], allLines[i + 1], allLines[i + 2], 
    allLines[i + 3], allLines[i + 4], allLines[i + 5], allLines[i + 6], allLines[i + 7]);
}

Здесь я изменил приращение с i++ на i += 8 и добавил этот индекс к вызову массива каждый раз таким образомцикл запускает, он получит следующие 8 пунктов.Это должно решить вашу проблему наличия одинаковых данных в каждой строке.

Поскольку я не знаю, что находится в вашем файле, я не могу сказать вам, почему информация начинается во втором столбце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...