0

コンボボックスを使用したSimpleEntityFrameWorkサンプルの作業。コンボボックスの選択に基づいてdatagridviewにデータを入力しようとしていますが、キャストエラーが発生します

Simple 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();

そして、ComboBoxSeletionを変更したときに表示される正確なエラーは

 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 に答える