Поиск строки в DataGridView - PullRequest
0 голосов
/ 05 марта 2012

Я загружаю CSV в DataGridView с помощью следующего кода

        string rowValue;
        string[] cellValue;

        if(File.Exists(textBoxFilePath.Text.ToString().Trim()))
        {
        StreamReader streamReader = new StreamReader(textBoxFilePath.Text.ToString().Trim());
        rowValue = streamReader.ReadLine();
        cellValue = rowValue.Split(',');

        for (int i = 0; i <= 4 - 1; i++)
        {
            DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
            column.Name = cellValue[i];
            column.HeaderText = cellValue[i];
            dataGridView1.Columns.Add(column);
        }
        // Reading content
        while (streamReader.Peek() != -1)
        {
            rowValue = streamReader.ReadLine();
            cellValue = rowValue.Split(',');
            DateTime dt = new DateTime();
            dt = DateTime.Now;
            String month = dt.Month.ToString();
            String day = dt.Day.ToString();
            if (dt.Month < 10)
            {
                month = "0" + dt.Month;
            }

            if (dt.Day < 10)
            {
                day = "0" + dt.Day;
            }
            String stringDate = dt.Year.ToString() + "/" + month + "/" + day;
            Console.WriteLine(dt.ToShortDateString());
            Console.WriteLine(stringDate);
            if (cellValue[2].CompareTo(stringDate) == 0)
            {
                dataGridView1.Rows.Add(cellValue);                    
            }
        }
        streamReader.Close();
        dataGridView1.Sort(this.dataGridView1.Columns["User-Name"], ListSortDirection.Ascending);
        }
        else 
        {
            MessageBox.Show("No File is Selected");
        }

Я хочу найти имя пользователя.Какой столбец 2.

Ответы [ 2 ]

3 голосов
/ 05 марта 2012

Вы можете получить доступ к произвольной ячейке value в DataGridView, следуя шаблону:

dataGridView.Rows[rowIndex].Cells[columnIndex].Value

1 голос
/ 05 марта 2012

Вы ищете конкретное значение столбца User-Name?Если это так, вы можете обработать это следующим образом:

string searchedText = "some name";
var matchedRows = this.dataGridView1.Rows
    .Cast<DataGridViewRow>()
    .Select(r => r.Cells["User-Name"].Value)
    .Where(v => v != null && v.ToString() == searchedText)
    .ToList();

Список matchedRows будет содержать все строки, соответствующие вашей строке поиска.Обратите внимание, что вам необходимо включить using System.Linq; пространство имен для .Cast и .Where методов.

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