2010-07-06 73 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