vikil chandrapati Ответов: 1

Как сравнить ячейку gridview со строкой


Я хочу сравнить отдельные ячейки gridview, а затем вывести результат в глобальную переменную. В моем коде прямо сейчас нет ошибок, и я пробовал прогонять код шаг за шагом, но он ничего не выводит

Что я уже пробовал:

private void btnfinalize_Click(object sender, EventArgs e)
{
    for (int i = 0; i < dataGridView1.Rows.Count; ++i)
    {
        if(dataGridView1.Rows[i].Cells[0].Value.ToString() == "Manga vol 1 - 5")
        {
            Global.Book1 = Int32.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString());
        }
        else if (dataGridView1.Rows[i].Cells[0].Value.ToString() == "Manga vol 6-15")
        {
            Global.Book2 = Int32.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString());
        }
        else if (dataGridView1.Rows[i].Cells[0].Value.ToString() == "Novels 1-199")
        {
            Global.Book3 = Int32.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString());
        }
        else if (dataGridView1.Rows[i].Cells[0].Value.ToString() == "Novels 200-400")
        {
            Global.Book4 = Int32.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString());
        }
        else if (dataGridView1.Rows[i].Cells[0].Value.ToString() == "Comics series mainstream")
        {
            Global.Book5 = Int32.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString());
        }
        else if (dataGridView1.Rows[i].Cells[0].Value == "Comics series secondary")
        {
            Global.Book6 = Int32.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString());
        }
        else if (dataGridView1.Rows[i].Cells[0].Value.ToString() == "Text book 1 semester/2 modules")
        {
            Global.Book7 = Int32.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString());
        }
        else if (dataGridView1.Rows[i].Cells[0].Value.ToString() == "Text book module add-ons")
        {
            Global.Book8 = Int32.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString());
        }
        else if (dataGridView1.Rows[i].Cells[0].Value.ToString() == "Hardcover")
        {
            Global.Hardcover = Int32.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString());
        }

    }

F-ES Sitecore

Если вы посмотрите на результат, который вы получаете из ячеек[i].Value, вы увидите, что в нем есть пробелы, новые строки, html и т. д., Он не содержит только текст внутри. Либо сравните с данными, к которым привязана сетка, либо используйте их .Содержит, а не"==", Или используйте функцию, чтобы удалить весь начальный\конечный текст, который вам не нужен.

1 Ответов

Рейтинг:
1

Sandeep Mewara

Я предполагаю, что у вас есть какой-то код, связанный с выводом, в другом месте. Текущий код предназначен только для сравнения и настройки вашего Global объект, который, кажется, имеет по крайней мере 9 свойств.

Теперь строка, которую вы сравниваете, может иметь слово в другом регистре - верхнем или нижнем. Попробуйте использовать StringComparison.OrdinalIgnoreCase и посмотрим, пройдет ли это.

if (prodCateogry.Trim().Equals("Diamond",StringComparison.OrdinalIgnoreCase))
{

}

Кроме того, используйте IDE debugger и пройдите через строку за строкой, чтобы увидеть, получает ли объект назначенные данные, если сравниваемые значения найдены совпадающими (если выполняются операторы).