Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Bestimmtes Feld aus Combobox auslesen


mitch26 - Fr 13.05.11 09:37
Titel: Bestimmtes Feld aus Combobox auslesen
Wunderschönen guten Tag,

ich fülle eine in einem Formular ein Combobox mit Datenen aus einer Datenbank.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
//Combobox füllen mit dem Wert Firma füllen
            int spalten_nr = 1//Nummer der Spalte, in der das gewünschte Element steht
            SqlCommand cmd2 = new SqlCommand("Select mandant_nr, firma FROM tbl_mandant");
            // CommandText nach Bedarf stetzen
            cmd2.Connection = conn;
            conn.Open();
            cb.Items.Clear();
            SqlDataReader dr = cmd2.ExecuteReader();
            while (dr.Read())
            {
                cb.Items.Add(dr.GetValue(spalten_nr).ToString());
            }
            //Standardwert setzten
            cb.SelectedIndex = 0;


Angezeigt wird hiebei der Inhalt der Spalte "firma".
Nun möchte ich mir gerne in einer Textbox den Wert aus mandant_nr (Schlüsselfeld) anzeigen lassen.

Ich habe es schon mit textBox1.Text =  cb.SelectedIndex.ToString(); probiert aber dabei bekomme ich immer nur den Index der Combobox.

Wie komme ich an die anderen Werte der Combobox?

Danke

Mitch


Th69 - Fr 13.05.11 10:09

Hallo mitch26,

dazu hatte ich neulich schon in einem Beitrag in einem anderen Forum etwas geschrieben: http://www.c-plusplus.de/forum/p2056421#2056421
Das generelle Stichwort dafür lautet: DataBinding


mitch26 - Fr 13.05.11 10:48

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo mitch26,

dazu hatte ich neulich schon in einem Beitrag in einem anderen Forum etwas geschrieben: http://www.c-plusplus.de/forum/p2056421#2056421
Das generelle Stichwort dafür lautet: DataBinding


Danke schön, konnte es so umsetzten:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
using System;
...

namespace combobox
{
    public partial class Form1 : Form
    {
        private DataView dv = null;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            fillListControl(comboBox1);

        }

        private void fillListControl(ListControl lc)
        {

            string CrLf = Environment.NewLine;
            SqlConnection conn = new SqlConnection("Server=.\\SQLEXPRESS;" +
                                                   "Initial Catalog=BMDBSQL;" +
                                                   "Integrated Security=SSPI;");
            SqlCommand cmd = new SqlCommand("Select * FROM tbl_mandant", conn);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable("tbl_mandant");
            da.Fill(dt);
            dv = dt.DefaultView;

            lc.DataSource = dv;
            lc.ValueMember = "mandant_nr";
            lc.DisplayMember = "firma";
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            textBox1.Text = comboBox1.SelectedValue.ToString();
        }

    }
}