Listbox items System.Data.DataRowView when inner joining query

Viewed 31

here is two of my 'Ders' items(bottom listbox) it gets items but i cant display them, two output should come from query so query is correct.Something must be wrong in DisplayMember but i couldn't figure it out for 2 hours.

here is the data that i receive from query

and here is my code

private void kryptonListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            bolumsilbutton.Enabled = true;
            bolumuduzenlebutton.Enabled = true;
            bolumupbutton.Enabled = true;
            bolumdownbutton.Enabled = true;
            derseklebutton.Enabled = true;
            derslistbox.Enabled = true;

            if (Connection.DBPath == null)
            {
                //burada bölüm ismine göre veri çekilecek(veritabanı olmadan!)

            }
            else
            {
                try
                {
                    OleDbConnection con = new OleDbConnection();
                    string query;
                    con = Connection.GetConnection();
                    con.Open();

                    query = "SELECT Ders.ders_id, Ders.ders_ismi FROM Ders INNER JOIN (Bölüm INNER JOIN Bölüm_ders ON Bölüm.bolum_id = Bölüm_ders.bolum_id.Value) ON Ders.ders_id = Bölüm_ders.ders_id WHERE (((Bölüm.bolum_id)=" + bolumlerlistbox.SelectedValue.ToString() + "))";
                    OleDbDataAdapter da = new OleDbDataAdapter(query, con);
                    DataSet ds = new DataSet();
                    da.Fill(ds, "Ders");
                    Connection.bolumlerform.derslistbox.DisplayMember = "Ders.ders_ismi";
                    Connection.bolumlerform.derslistbox.ValueMember = "Ders.ders_id";
                    Connection.bolumlerform.derslistbox.DataSource = ds.Tables["Ders"];




                    con.Close();

                }
                catch (OleDbException ex)
                {
                    MessageBox.Show("Veritabanına bağlanırken hata oluştu !" + ex.Message);
                }
            }



        }
1 Answers

I have found the solution if someone is having trouble to find it. I have changed the query this

SELECT Ders.ders_id, Ders.ders_ismi FROM... to this

SELECT Ders.ders_id as ders_id, Ders.ders_ismi as ders_ismi FROM ...

and of course changed the display member and value member to this

Connection.bolumlerform.derslistbox.DisplayMember = "ders_ismi"; Connection.bolumlerform.derslistbox.ValueMember = "ders_id";

Related