2010-07-06 113 views
0

我想創建一個應用程序,我希望數據網格視圖顯示數據,具體取決於用戶根據我的應用程序在組合框中選擇的日期。 cmbDate顯示數據庫中的可用日期。下面是我編寫的源代碼,但是在調試編譯器時給出了運算符'=='的錯誤,不能用於比較'System.DateTime'和'object'。我希望當用戶點擊加載按鈕時,它會加載所選日期或月份的數據。在datagrid視圖中顯示自定義數據

namespace linqToSql_trial 
{ 
    public partial class frmSample : Form 
    { 
     private userLoginDataContext dc; 

     public frmSample() 
     { 
      InitializeComponent(); 
      dc = new userLoginDataContext(); 
     } 

     private void LoadDate() 
     { 
      cmbDate.DataSource = dc.flights.Select(x=>x.date); 

      cmbDate.DisplayMember = "date"; 
      cmbDate.ValueMember = "date"; 
     } 

     private void frmSample_Load(object sender, EventArgs e) 
     { 
      LoadDate(); 
     } 

     private void btnLoad_Click(object sender, EventArgs e) 
     { 

      this.flightsDataGridView.DataSource = dc.flights.Where (x => x.date == cmbDate.SelectedItem); 

     } 
    } 
} 
+1

問題是無效鑄造! cmbDate.SelectedItem表示一個Object實例,而x.date表示一個DateTime實例! – Jalal 2010-07-06 06:57:23

+1

接受答案,如果它爲您工作,並提高您的合格率 – 2012-02-08 14:17:27

回答

5

錯誤的出現是因爲你需要在你選擇的項目(文本,輸入String)轉換成鍵入DateTime

this.flightsDataGridView.DataSource = 
    dc.flights.Where (x => x.date == Convert.ToDateTime(cmbDate.SelectedItem)); 

這可能會解決您的問題。

+0

嗨Thanx它的工作。 – Allan 2010-07-06 07:00:08