C# DataGridView在设置DataSource时不显示
我使用LINQ从DB加载浮点数组。即使我成功加载了数组,我也无法制作DataGridView来显示该数组 这是我的密码C# DataGridView在设置DataSource时不显示,c#,datagridview,C#,Datagridview,我使用LINQ从DB加载浮点数组。即使我成功加载了数组,我也无法制作DataGridView来显示该数组 这是我的密码 float[] balances = client.LoadBalance(id); // LoadBalance() give me an array of floats of customer who has the specified id dataBalance.DataSource = balances; 我尝试了以下方法,但没有效果 dataBalance.Re
float[] balances = client.LoadBalance(id);
// LoadBalance() give me an array of floats of customer who has the specified id
dataBalance.DataSource = balances;
我尝试了以下方法,但没有效果
dataBalance.Refresh();
dataBalance.Parent.Refresh();
及
我在float[]balances=client.LoadBalance(id)之后添加了一个断点代码>我确信负载平衡(id)
有效。
请帮忙 您需要dataBalance.DataBind();在dataBalance.DataSource=余额之后 解决方案,只需为您的余额创建一个类
比如说,BalanceClass
public class BalanceClass
{
public float balances { get; set; }
}
然后
float[]balances=client.LoadBalance(id);
List bal=新列表();
foreach(余额中的var项目)
余额添加(新余额类(){balances=item});
ataGridView2.DataSource=bal.ToList();
您可以这样做
dataGridView1.DataSource =
(LoadBalance(id) ?? new float[0])
.Select(x => new { Number = x })
.ToList();
它起作用了!你能告诉我为什么吗?此外,您不需要bal.ToList()
,因为bal
是一个列表,我删除了ToList()
,它仍然有效这是一个关于谢谢的好解释,我的意思是为什么创建一个新类将这些值放在我的数据库中,而将它们作为列表
不起作用?这仅适用于winform中的web(ASP.NET),我们没有这种方法,也没有必要。
float[] balances = client.LoadBalance(id);
List<BalanceClass> bal = new List<BalanceClass>();
foreach (var item in balances)
bal.Add(new BalanceClass() { balances = item});
ataGridView2.DataSource = bal.ToList();
dataGridView1.DataSource =
(LoadBalance(id) ?? new float[0])
.Select(x => new { Number = x })
.ToList();