Laden...

[erledigt] ComboBox - SQL - Binding und zusätzliche Parameter

Erstellt von Torni vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.231 Views
T
Torni Themenstarter:in
50 Beiträge seit 2014
vor 5 Jahren
[erledigt] ComboBox - SQL - Binding und zusätzliche Parameter

Hi,

ich stehe gerade mal wieder komplett auf dem Schlauch.

Ich lese ne Textdatei mit diversen SQL-Abfragen ein (ja, nur ich habe Zugriff darauf..):

Die .txt sieht in etwa so aus:

"Sichtbarer Eintrag der Combox;SQL-Statement;string"


...
            var lines = File.ReadLines("Abfragen.txt");
            var data = lines.Select(l => l.Split(';'));

            List<SQLB> alleSQL = data
                .Where(arr => arr.Length >= 3)
                .Select(arr => new SQLB
                {
                    Name = arr[0],
                    sql = arr[1],
                    saver = arr[2]
                })
                .ToList();

            var bindingSourceSQL = new BindingSource();
            bindingSourceSQL.DataSource = alleSQL;
            comboBox1.DataSource = bindingSourceSQL.DataSource;
            comboBox1.ValueMember = "sql";
            comboBox1.DisplayMember = "Name";
...

    public class SQLB
    {
        public string Name { get; set; }
        public string sql { get; set; }
        public string saver { get; set; }
    }
...

Wie greife ich auf den dritten "Parameter" zu ("saver") der im Array steht?

1.029 Beiträge seit 2010
vor 5 Jahren

Hi,

deine Frage wirkt irgendwie komisch - kann sein, dass ich diese schlicht nicht verstehe - aber meinst du:


alleSQL[0].saver

?

LG

2.207 Beiträge seit 2011
vor 5 Jahren

Hallo Torni,

Wie greife ich auf den dritten "Parameter" zu ("saver") der im Array steht?

Du hast jetzt eine Liste vom Typ "SQLB". Wenn du etzt über die Liste iterierst oder via Index auf einen Eintrag zugreifst, hast du diesen Eintrag und kann einfach mit "." auf die Properties, also auch auf "saver" zugreifen.

Gruss

Coffeebean

4.942 Beiträge seit 2008
vor 5 Jahren

Ich glaube, Torni meint, wie er über die ComboBox (bei Auswahl durch den Anwender) auf den dritten Parameter zugreifen kann (da er nur die ersten beiden damit verknüpft hat).

Mittels SelectedItem hast du Zugriff auf die ganze Daten:


var sqlb = comboBox1.SelectedItem as SQLB;
string saver = sqlb.saver; / bzw. .Saver (s.u.)

Noch besser ist es jedoch die BindingSource als (privaten) Klassenmember zu deklarieren und darüber zuzugreifen (BindingSource.Current):


var sqlb = bindingSourceSQL.Current as SQLB;

PS: Eigenschaften sollten alle mit einem Großbuchstaben beginnen (also Sql sowie Saver).

T
Torni Themenstarter:in
50 Beiträge seit 2014
vor 5 Jahren

Hallo,

danke für die Hilfe und genau das was Th69 schrieb meinte ich.