Пропуск строк из таблицы при получении данных из базы данных asp. чистый C#

fees_structure имеет 24 строки категории "А". Но когда я пытаюсь получить их и напечатать, отображается только 20 или (иногда 21 строка)

Вот мой код:

string catA = "SELECT id,fees_name,amount,fee_category FROM fees_structure where fee_category='A' ORDER BY id";

using (SqlCommand scom = new SqlCommand(catA, con))
{
    using (SqlDataReader read = scom.ExecuteReader())
    {
        read.Read();

        if (read.HasRows)
        {
            while (read.Read())
            {
                feestableA.Append("<tr>");
                feestableA.Append("<td>" + read["fees_name"] + "</td>");
                feestableA.Append("<td>" + read["amount"] + "</td>");
                feestableA.Append("</tr>");
            }

            plcfeesA.Controls.Add(new Literal { Text = feestableA.ToString() });
            plcfeesA.Dispose();
        }
    }
}

3 ответа

Решение

read() перед while подозрительно Я подозреваю, что ест один ряд.

Еще одна возможность потери строк - сортировка с учетом регистра - если категория может быть 'a' (или вариант в другой кодировке). Однако это зависит от стандартных или явных параметров сортировки, используемых для столбца, базы данных и сервера.

Я не думаю, что это проблема C#.

Попробуй это

string catA = "SELECT id,fees_name,amount,fee_category FROM fees_structure where fee_category like '%A%' ORDER BY id";

Просто посмотрите, изменились ли ваши результаты

Попробуй это. Посмотрите внимательно, я удалил строки кода, которые делали то, что вы не хотели делать.

string catA = "SELECT id,fees_name,amount,fee_category FROM fees_structure where fee_category='A' ORDER BY id";

using (SqlCommand scom = new SqlCommand(catA, con))
{
    using (SqlDataReader read = scom.ExecuteReader())
    {
        while (read.Read())
        {
            feestableA.Append("<tr>");
            feestableA.Append("<td>" + read["fees_name"] + "</td>");
            feestableA.Append("<td>" + read["amount"] + "</td>");
            feestableA.Append("</tr>");
        }

        plcfeesA.Controls.Add(new Literal { Text = feestableA.ToString() });
    }
}

}

Другие вопросы по тегам