2015-08-17 190 views
0

我曾經在很多場合使用過數據庫來填充數據網格。 但是,在這種情況下,我似乎無法得到想要的結果。 我想只顯示那天有生日的人。 我已經有日期和生日,但我似乎無法得到行添加到datagridview。通過DataTable從Foreach循環填充DatagridView

這裏是我有多遠。但他「BirthdayGrdVw.DataSource」我似乎無法弄清楚。

我一直在使用Google搜索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

謝謝史蒂夫。爲編輯。 – Gee

+0

在您發佈的內容中沒有添加到DataGridView的代碼。 – user469104

+0

'Clients = Controller.DBQueries.GetPolicyList();' 我想你在這裏錯過了什麼,'客戶'是什麼? –

回答

0

似乎有事情離開了你的代碼,但沒有全部在這裏的信息是什麼,我建議你試試,如果你確定你的數據表已被填充。

將綁定源對象添加到您的Windows窗體中,方法是將其從工具箱拖到窗體上。

設置它將被稱爲bindingsource1。設置它的數據源,以這樣的數據表:

BindingSource1.DataSource = "your data table name here"; 

然後設置在DataGridView的DataSource到bindingsource1。

"Your DataGridView".DataSource = BindingSource1; 

或者,如果你不需要一些,一個BindingSource的提供類似額外功能「過濾器」等等......你可以在數據表中直接綁定到像在DataGridView:

DataGridView.DataSource = "your data table name here"; 
+0

非常感謝你。 – Gee

+0

我忽略了gridview數據源的原因是因爲我無法讓它填充。這是一個嘗試的例子。 BirthdayGrdVw.DataSource = Clients.Rows; – Gee

+0

客戶端是什麼類型的對象?它有一個行屬性,它不是一個Datatable? – thewisegod

0

如果客戶端是一個DataTable,你知道你想要再申請爲什麼不使用過濾器過濾什麼數據表爲:

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循環和所有?

+0

謝謝你堆棧! – Gee