2016-04-05 22 views
-1

,C# ve pencereler Formunda

Ben böyle bir veritabanı vardır:

enter image description here

ve ben bir sınıf put kullanarak bu olduğunu bir datagridview içine veri var:

class DBConnection 
{ 
    public static void GetList(Form2 frm2) 
    { 
     string DBPath = Application.StartupPath; 
     OleDbConnection Connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="[email protected]"\DataBase\SampleFeeds.accdb"); 
     OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary", Connection); 
     DataTable Dtable = new DataTable(); 
     DataA.Fill(Dtable); 
     frm2.SelectedFeeddataGridView.DataSource = Dtable; 
    } 

} 

ve bu benim form yüküdür:

Şimdiye kadar her şey yolunda. örneğin

Ben bir düğmeye GrassLegumeForagebtn kullanıcı tıklama benim FeedSelectListBox Çimen kategorisinde olduğu Yem Adları sadece tüm doldururken için istediğim bir liste kutusu FeedSelectListBox, var:

şimdi bir sorum var/Baklagil Yem.

Bunu nasıl yapmalıyım? Damirchi yardımıyla

Sorunum

// -----------------

çözüldü Ama şimdi başka bir soru vardır: ne zaman istiyorum kullanıcı liste veri kutusundan, veri tabanı görünümünde bulunan veri tabanındaki (ad, numara, yayın türü ve ,,, gibi) tüm verilerini listeler.

benim SelectFeedbtn bu kodu kullanılan ama çalışmıyor:

private void SelectFeedbtn_Click(object sender, EventArgs e) 
    { 
     string StrCon = System.Configuration.ConfigurationManager.ConnectionStrings["FeedLibraryConnectionString"].ConnectionString; 
     OleDbConnection Connection = new OleDbConnection(StrCon); 
     string FeedSelectedID = FeedSelectListBox.SelectedValue.ToString(); 
     OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary where ID = 'FeedSelectedID'" , Connection); 
     DataTable DTable = new DataTable(); 
     DataA.Fill(DTable); 
     SelectedFeeddataGridView.DataSource = DTable; 
    } 

Ve FeedSelectListBox ait ValueMember mülk kimliği ancak hatadır:

'System.Data tür bir işlenmeyen özel durum .OleDb.OleDbException 'System.Data.dll dosyasında oluştu.

Hatta bu sorguyu kullanın ama hala çalışmıyor:

OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary where ID =" FeedSelectListBox.SelectedValue , Connection); 
+1

Getlist yöntemi, kayıtların veya tabloların bir listesini almak içindir, bu nedenle "frm2.SelectedFeeddataGridView.DataSource = Dtable;" bu yöntemde. Sadece bu yöntemden veri tabanını döndürün ve veri kaynağını form yükü yöntemine atayın. Böylece, form yük olayında FeedSelectListBox için kaynakla aynı veri tabanını da kullanabilirsiniz. –

+0

Evet, haklıyım, sadece Bağlantılarımı test etmek ve çalışıp çalışmadığını görmek için yazdım, Ama sorum, bir kategoride bulunan tüm isimlerin (başka bir alan adı değil) tümünün nasıl alınabileceğidir./Baklagil Yem kategorisi). –

cevap

1

önce en FeedSelectListBox ait DisplayMember ve ValueMember özellikleri ayarlamak en ve click olayı bu kodu kullanın. Bu kodu GrassLegumeForagebtn tıklama etkinliğine koyabilirsiniz.

string DBPath = Application.StartupPath; 
     OleDbConnection Connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="[email protected]"\DataBase\SampleFeeds.accdb"); 
     OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary where category='Grass/Legume'", Connection); 
     DataTable Dtable = new DataTable(); 
     DataA.Fill(Dtable); 
     frm2.FeedSelectListBox .DataSource = Dtable; 
+0

Çok fazla, işe yarıyor, Ekran Üyesi ve Değer Üyesi arasındaki farkın ne olduğunu açıklayabilir misiniz?İkisini de ayarlamalı mıyım? İkisi de her iki durumda da çalıştığı için –

+1

Görüntülü Kullanıcı Kullanıcı Örneği sizin durumunuzdadır. Besleme Adı/Açıklama ve Değer Üye, işlemlerin arkasındaki kod içindir, örneğin, öğeden hangisinin seçildiği, genellikle Değer Üye Kimliği. – Damirchi

+0

tnx, Şimdi başka bir sorum var, kullanıcı liste veri kutusundan bir veri kaynağı seçtiğinde, veri tabanı görünümünde veri tabanındaki tüm veriler (isim, numara, yayın türü ve ,,,) gibi bir seçenek oluşturuldu mu? –

İlgili konular