C# 功能不工作

C# 功能不工作,c#,asp.net,.net,C#,Asp.net,.net,我试图显示订单表中最近的“订单”。但即使我有一些订单在表中,我得到的信息是“没有订单”。代码有什么问题 public static List<OrderInfo> GetOrdersByRecent (int count) { DbCommand comm = GenericDataAccess.CreateCommand (); comm.CommandText = "OrdersGetByRecent"; DbParameter param = comm.

我试图显示订单表中最近的“订单”。但即使我有一些订单在表中,我得到的信息是“没有订单”。代码有什么问题

public static List<OrderInfo> GetOrdersByRecent (int count)
{
    DbCommand comm = GenericDataAccess.CreateCommand ();
    comm.CommandText = "OrdersGetByRecent";
    DbParameter param = comm.CreateParameter ();
    param.ParameterName = "@Count";
    param.Value = count;
    param.DbType = DbType.Int32;
    comm.Parameters.Add (param);
    return ConvertDataTableToOrders (GenericDataAccess.ExecuteSelectCommand (comm));
}

protected void byRecentGo_Click(object sender, EventArgs e)
{
    try
    {
        int recordCount = Int32.Parse(recentCountTextBox.Text);
        List<OrderInfo> orders = CommerceLibAccess.GetOrdersByRecent(recordCount);
        grid.DataSource = orders;
        if (orders.Count == 0)
        {
            errorLabel.Text = "<br />No orders to get.";
        }
    }
    catch
    {
        errorLabel.Text = "<br />Couldn't get the requested orders!";
    }
    finally
    {
        grid.DataBind();
    }
}
公共静态列表GetOrdersByRecent(整数计数)
{
DbCommand comm=GenericDataAccess.CreateCommand();
comm.CommandText=“OrdersGetByRecent”;
DbParameter param=comm.CreateParameter();
param.ParameterName=“@Count”;
参数值=计数;
param.DbType=DbType.Int32;
comm.Parameters.Add(参数);
返回ConvertDataTableToOrders(GenericDataAccess.ExecuteSelectCommand(comm));
}
受RecentGo\u Click保护的无效(对象发送者,事件参数e)
{
尝试
{
int recordCount=Int32.Parse(recentCountTextBox.Text);
List orders=CommerceLibAccess.GetOrdersByRecent(记录计数);
grid.DataSource=订单;
如果(orders.Count==0)
{
errorLabel.Text=“
无订单获取。”; } } 抓住 { errorLabel.Text=“
无法获取请求的订单!”; } 最后 { grid.DataBind(); } }
表格字段“OrderID”和OrderID的OrderInfo属性需要相同

class OrderInfo
{

int OrderID;

}

选中此项…

您得到的订单为零,因为

List<OrderInfo> orders = CommerceLibAccess.GetOrdersByRecent(recordCount);
正在返回一个空数据表

您必须深入研究数据表,找出它认为是空的原因。

(可能是因为它实际上是空的???)

你的问题很模糊。你试过调试代码吗?-1:你必须自己调试-除非你提供显示问题的小样本(不是对随机私有函数的调用),
CommerceLibAccess.GetOrdersByRecent(recordCount)
不返回任何项,否则这个问题可能会被解决。就这样。我们不能告诉您更多,因为我们不知道该函数如何工作,也不知道数据库的外观。在那一行上放一个断点,然后自己遍历代码。以上都是正确的,但是在
CommandText
属性中的“OrdersGetByRecent”是什么?这应该是一个存储过程吗?或者您只是省略了SELECT字符串。如果您在我遇到的任何sql系统中运行“OrdersGetByRecent”。。。您将得到一个错误(很可能)或返回一个空集。如果您使用的是存储过程,则需要声明
comm.CommandType
属性。它是存储过程,我可以在sql查询中运行它。我尝试了comm.CommandType=CommandType.storedProcess;但结果是一样的。我不明白你的意思。这个属性在哪里?这有什么作用?好的,你有一个类OrderInfo。告诉我它包含的数据成员没有冒犯,但这只是说明了OP上的评论。除了“调试它”和“它不返回行”之外,我们不能告诉他多少。sql联接查询中存在错误。
return ConvertDataTableToOrders (GenericDataAccess.ExecuteSelectCommand (comm));