在表单上以 table 显示数据
Displaying data in a table on a form
我想在我的表单上制作一个 table 来显示一些信息。目前,我遇到了一个问题
我的table方法:
private DataTable ResultTable()
{
Other.OrderDatabase orderDatabase = new OrderDatabase();
string[] names = { "Order ID", "Name of order", "Price", "Date of order", "Order description" };
DataTable table = new DataTable();
for (int i = 0; i < names.Length; i++)
{
//names of columns
table.Columns.Add(names[i]);
foreach (Order order in orderDatabase.OrdersDatabase)
{
table.Rows.Add(order.OrderId, order.NameOfOrder,order.PriceOfOrder, order.DateOfOrder, order.OrderDescription);
}
}
return table;
}
我的错误是:
Input array is longer than the number of columns in this table.
据我所知,我输入了正确的列值。我有 5 个属性和 5 headers?我尝试添加一个额外的,但这似乎没有帮助,也许我忽略了一些愚蠢的事情?
您在添加所有列之前放置了一整行。
先添加列,再添加行:
for (int i = 0; i < names.Length; i++)
{
//names of columns
Columns.Add(names[i]);
}
foreach (Order order in orderDatabase.OrdersDatabase)
{
table.Rows.Add(order.OrderId, order.NameOfOrder,order.PriceOfOrder, order.DateOfOrder, order.OrderDescription);
}
看起来您每次填充单个列时都在尝试填充行。如果我没记错的话,您需要在开始填充行之前定义列。
尝试移动此代码段:
foreach (Order order in orderDatabase.OrdersDatabase)
{
table.Rows.Add(order.OrderId, order.NameOfOrder,order.PriceOfOrder, order.DateOfOrder, order.OrderDescription);
}
...离开这个 for 循环,到它的正下方:
for (int i = 0; i < names.Length; i++)
{
//names of columns
table.Columns.Add(names[i]);
}
我想在我的表单上制作一个 table 来显示一些信息。目前,我遇到了一个问题
我的table方法:
private DataTable ResultTable()
{
Other.OrderDatabase orderDatabase = new OrderDatabase();
string[] names = { "Order ID", "Name of order", "Price", "Date of order", "Order description" };
DataTable table = new DataTable();
for (int i = 0; i < names.Length; i++)
{
//names of columns
table.Columns.Add(names[i]);
foreach (Order order in orderDatabase.OrdersDatabase)
{
table.Rows.Add(order.OrderId, order.NameOfOrder,order.PriceOfOrder, order.DateOfOrder, order.OrderDescription);
}
}
return table;
}
我的错误是:
Input array is longer than the number of columns in this table.
据我所知,我输入了正确的列值。我有 5 个属性和 5 headers?我尝试添加一个额外的,但这似乎没有帮助,也许我忽略了一些愚蠢的事情?
您在添加所有列之前放置了一整行。 先添加列,再添加行:
for (int i = 0; i < names.Length; i++)
{
//names of columns
Columns.Add(names[i]);
}
foreach (Order order in orderDatabase.OrdersDatabase)
{
table.Rows.Add(order.OrderId, order.NameOfOrder,order.PriceOfOrder, order.DateOfOrder, order.OrderDescription);
}
看起来您每次填充单个列时都在尝试填充行。如果我没记错的话,您需要在开始填充行之前定义列。
尝试移动此代码段:
foreach (Order order in orderDatabase.OrdersDatabase)
{
table.Rows.Add(order.OrderId, order.NameOfOrder,order.PriceOfOrder, order.DateOfOrder, order.OrderDescription);
}
...离开这个 for 循环,到它的正下方:
for (int i = 0; i < names.Length; i++)
{
//names of columns
table.Columns.Add(names[i]);
}