tabellen miteinander vergleichen


astra80

Grünschnabel
moin,

ich schreib grad an einem cocktailprogramm(sehr wichtig...).
ich hab zur zeit zwei tabellen und zwar eine die cocktails
und eine die alkoholsorten enthält. jetzt liste ich die namen
der cocktails in einer listbox auf. klicke ich auf einen namen
drauf so soll natürlich die jeweilige alkoholsorte die zu dem
cocktail gehört in einer combox angezeigt werden, wo
im vorfeld schon alle verfügbaren alkoholsorten geladen
wurden. problem: es geht nich. datarelation hab ich schon ma
versucht aber nicht hinbekommen. wär nett wenn mir jemand
helfen könnte. kein plan mehr...
hier ma der code den ich schon hab:


private DataSet ds = new DataSet();
private DataRow AlcRow;

private void Form1_Load(object sender, System.EventArgs e)
{

MySqlConnection cn = new MySqlConnection();
DataSet ds = new DataSet();

cn.ConnectionString = "Database=cocktail;Data Source=localhost;User ID=root;Password=";


MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = "SELECT * FROM cocktail";
cmd.Connection = cn;

MySqlDataAdapter da = new MySqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds, "cocktail");


cmd.CommandText = "SELECT * FROM alkohol";
cmd.Connection = cn;


da.SelectCommand = cmd;
da.Fill(ds, "alkohol");

listBox1.DataSource = ds.Tables["cocktail"];
listBox1.DisplayMember = "name";

comboBox1.DataSource = ds.Tables["alkohol"];
comboBox1.DisplayMember = "name";
}

private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
AlcRow = ds.Tables["alkohol"].Select("nr = " + ds.Tables["cocktail"].Rows[listBox1.SelectedIndex]["aalkohol"].ToString())[0];
comboBox1.SelectedText = AlcRow["name"].ToString();
}




DB:
tabelle alkohol: nr->int,name->varchar
tabelle cocktail: nr->int,name->varchar,aalkohol->int
 

Geldschwimmer69

Grünschnabel
Hallo, astra80

ich programmiere zur Zeit auch an einem Cocktailprogramm in Java. Die erste Version war auch in VB bzw. Delphi.
Mir fällt auf, das dein Datenbankkonzept nicht so richtig geeignet ist, um ein komplexes Objekt wie einen Cocktail mit seinen einzelnen Schritten, den Zutaten, dem Glas und die Zubereitungsart (Blender, Shaken, Rühren, Bauen) abzubilden.
Im Prinzip musst du die Alkohol-Zugehörigkeit nicht in der Cocktailtabelle, sondern bei dem Alkohol selbst speichern.
Mehrere "Alkoholzeilen" verweisen dann auf ein und den selben Cocktail.
Wenn du diese Struktur anwendest, kannst du ganz einfach mit einem INNER JOIN die entsprechenden Alkoholsorten von einem ausgewählten Cocktail herausfinden.

Du kannst dir gerne meine Datenbankstruktur mit zur Zeit 13 Entities (Tabellen) anschauen. Es handelt sich um die HSQL.sql - file.

Meine Homepage mit dem freien Cocktailprogramm:
http://dschaen.kiba.info

Das Cocktailprogramm hat mittlerweile schon 900 Arbeitsstunden hinter sich.
Auf einen Besuch würde ich mich sehr freuen

LG
Geldschwimmer69