C# 从数据库asp获取数据时跳过表中的行。净碳
“费用”结构有24个类别行。但当我尝试获取它们并打印时,它有时只显示20或21行 这是我的密码: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
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() });
}
}
}