Autor Beitrag
mitch26
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Fr 13.05.11 09:37 
Wunderschönen guten Tag,

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

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4799
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 13.05.11 10:09 
Hallo mitch26,

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

Für diesen Beitrag haben gedankt: mitch26
mitch26 Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: 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: www.c-plusplus.de/forum/p2056421#2056421
Das generelle Stichwort dafür lautet: DataBinding


Danke schön, konnte es so umsetzten:

ausblenden volle Höhe 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();
        }

    }
}