从数据库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();
        }
    }
}

从数据库asp获取数据时跳过表中的行.净c#

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() });
    }
}

}