我曾多次使用数据库来填充数据网格。 但是,在这种情况下,我似乎无法获得所需的结果。 我试图只显示那天过生日的人。 我已经有了日期和生日,但我似乎无法获得添加到datagridview的行。
这是我有多远。但他" BirthdayGrdVw.DataSource"我似乎无法弄清楚。
我一直在谷歌上搜索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)
{
}
}
}
}
答案 0 :(得分:0)
您的代码似乎遗漏了一些内容,但如果您确定已填充数据表,则不建议您使用此处的所有信息。
通过将bindingsource对象从工具箱拖到窗体上,将其添加到Windows窗体中。
设置它将被称为bindingsource1。将它的DataSource设置为数据表,如下所示:
BindingSource1.DataSource = "your data table name here";
然后将DataGridView的DataSource设置为bindingsource1。
"Your DataGridView".DataSource = BindingSource1;
或者,如果您不需要BindingSource提供的一些额外功能,例如" Filter" etc ...您可以将数据表直接绑定到DataGridView,如:
DataGridView.DataSource = "your data table name here";
答案 1 :(得分:0)
如果客户端是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循环和所有?