0

使用组合框处理简单实体框架工作示例。我正在尝试根据组合框选择来填充 datagridview,但我遇到了投射错误

我有简单的 MDF 数据库,我首先使用数据库为 EF 生成模型。在 EF 中,NiftyFO 是一个由 TradId、StrikePrice、VolumeTraded 等组成的模型。

        NiftyEntities nf = new NiftyEntities();
        NiftyFO nfo = new NiftyFO();

        nfo = (NiftyFO)(comboBox1.SelectedItem);

         var result = from x in nf.NiftyFOes
                     where x.StrikePrice ==nfo.StrikePrice
                     select x;
        dataGridView1.DataSource = result;
        dataGridView1.Refresh();

当我更改 ComboBox 选择时它显示的确切错误是

 Unable to cast object of type '<>f__AnonymousType0`1[System.Nullable`1[System.Decimal]] 
     to type 'agileLocal.NiftyFO.'

组合框填充行使价并通过 ef 从数据库加载,代码如下所示

             NiftyEntities nf = new NiftyEntities();
          var result2 = from x in nf.NiftyFOes
                          select new { x.StrikePrice };
            //comboBox1.DisplayMember = "StrikePrice";
            comboBox1.DataSource = result2;

解决了 :

select new { x.StrikePrice }; 

我刚改了这条线

select x.StrikePrice. 它奏效了。

4

1 回答 1

1

那么你的代码将是

   decimal myselected = (decimal)(comboBox1.SelectedItem);


 var result = from x in nf.NiftyFOes
                 where x.StrikePrice == myselected 
                 select x;
    dataGridView1.DataSource = result;
    dataGridView1.Refresh();

因为在你的select new { x.StrikePrice };你选择的是StrikePrice而不是它自己的对象

于 2012-08-31T21:44:43.030 回答