(Sumber: milist DOTNET) problems with linq

Respondido (Sumber: milist DOTNET) problems with linq

  • 18 April 2012 8:31
    Moderator
     
     

    dear all master..

    saya mencoba untuk menggunakan linq to entity  di DATA ACCESS dengan cara : 

    -----------------------------------------------------------------------

     bukuEntities db = new bukuEntities();

            public IQueryable<decimal> getHarga(int id)

            {          

                var harga = from har in db.produk where har.id_kode_produk == id select har.harga;

                return harga;

            }

    ---------------------------------------------------------

    dan untuk BUSSINESS ACCESS dengan cara

    ---------------------------------------------------------

     public List<decimal> getHarga(int id)

            {

                penjualanDat harga = new penjualanDat();

                return harga.getHarga(id).ToList();

            }

    -------------------------------------------------------------

    maksud saya adalah untuk mengambil row harga berdasarkan id nya dari combo box sehingga muncul di textbox harganya :

    -------------------------------------------------------------------------------------------------

            private void cbxBarang_SelectedIndexChanged(object sender, EventArgs e)

            {    

                penjualanBis harga = new penjualanBis();            

                int id = cbxBarang.SelectedIndex;

                var har = Convert.ToString(harga.getHarga(id));

                txtHarga.Text = harga;                           

            }

    ----------------------------------------------------------------------------------------------------

    nah kenapa munculnya   " System.Collections.Generic.List`1[System.Decimal] ".......

    ada yang salahkah dengan query linqnya atw ada permasalahan lainnya .???  ... trims


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

Semua Balasan

  • 18 April 2012 8:34
    Moderator
     
     Jawab

    Masalah kamu adalah di baris ini:

    var har = Convert.ToString(harga.getHarga(id));

    Method getHarga akan mengambalikan List<decimal>, dan jika kamu melakukan Convert.ToString hasilnya pasti spt yg kamu tulis itu.

    Kalau kamu cuma mau ambil satu nilai harga saja dengan asumsi satu id_kode_produk adalah satu harga, maka yg kamu kembalikan harusnya bukan List<decimal> tapi cukup decimal saja.

    Jadi di bagian method getHarga harusnya diubah menjadi:

    public decimal getHarga(int id)

    {

        penjualanDat harga = new penjualanDat();

        return harga.getHarga(id).SingleOrDefault();

    }


    Dijawab oleh: Paulus Iman


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.