从Foreach循环通过DataTable填充DatagridView
本文关键字:DataTable 填充 DatagridView Foreach 循环 | 更新日期: 2023-09-27 18:08:25
我曾多次使用数据库填充数据网格。然而,在这种情况下,我似乎不能得到想要的结果。我试图只显示当天过生日的人。我已经有日期,和生日,但我似乎不能得到行添加到datagridview。
这是我所得到的。但是他"生日奶奶"。数据源" i can't figure out.
我已经搜索了2天了。
我是新手,如果你能帮助我,我将非常感激。
private void Tasks_VisibleChanged(object sender, EventArgs e)
{
Clients = Controller.DBQueries.GetPolicyList();
if(Clients != null)
{
foreach(DataRow row in Clients.Rows)
{
string ClientID = Clients.Rows[0]["ClientID"].ToString();
DateTime Birthdate = Controller.GetBirthdate(ClientID);
DateTime now = DateTime.Now;
if (Birthdate.Day == now.Day && Birthdate.Month == now.Month)
{
}
}
}
}
您的代码中似乎遗漏了一些东西,但是如果没有所有的信息,我建议您尝试一下,如果您确信您的数据表已经填充。
将一个bindingsource对象从工具箱中拖到窗体中,将其添加到Windows窗体中。
设置它将被称为bindingsource1。将它的DataSource设置为数据表,如下所示:
BindingSource1.DataSource = "your data table name here";
然后将DataGridView的数据源设置为bindingsource1。
"Your DataGridView".DataSource = BindingSource1;
或者如果你不需要BindingSource提供的一些额外功能,比如"过滤器"等…你可以将数据表直接绑定到DataGridView,如下所示:
DataGridView.DataSource = "your data table name here";
如果Clients是一个DataTable,并且你知道你想要应用什么过滤,那么为什么不在DataTable上使用Filter作为:
DataView dv = new DataView(Clients);
dv.RowFilter = "month(of your Birthday Col)="+now.Month+" and day(of your BirthDay Col)="+now.Day;
yourGridView.DataSource = dv.ToTable();
yourGridView.DataBind();
代替所有Foreach循环和所有?