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