从数据库asp获取数据时跳过表中的行.净c#
本文关键字:asp 数据库 获取 数据 | 更新日期: 2023-09-27 17:51:09
fees_structure
有24行"A"类别。但是当我试图获取它们并打印时,它只显示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();
}
}
}
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() });
}
}
}