C# 从数据库asp获取数据时跳过表中的行。净碳

C# 从数据库asp获取数据时跳过表中的行。净碳,c#,asp.net,sql-server,skip,asp.net-placeholder,C#,Asp.net,Sql Server,Skip,Asp.net Placeholder,“费用”结构有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 = sc

“费用”结构有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();
        }
    }
}

我不认为这是一个C问题

试试这个

string catA = "SELECT id,fees_name,amount,fee_category FROM fees_structure where fee_category like '%A%' ORDER BY id";
只要看看你的结果是否改变,while之前的读数是可疑的。我怀疑是吃了一排


丢失行的另一种可能性是区分大小写的排序规则——如果类别可以是“a”或其他编码中的变体。但是,这取决于列、数据库和服务器使用的默认或显式排序规则。

试试这个。仔细观察,我删除了一些代码行,它们正在做一些您不想做的事情

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