Пропуск строк из таблицы при получении данных из базы данных 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() });
}
}
}