Hallo!
In Sachen .NET (speziell C#) bin ich noch sehr unbeholfen und versuche mich gerade an einer simplen Datenbankabfrage. Ich benutze dabei die Express-Variante von VisualStudio mit C# und einer mysql Datanbank. Die Verbindung zur Datenbank klappt und eine einfache Select-Anweisung habe ich schon erfolgreich ausgeführt. Ich hab nur ein Problem bei einem Join von mehreren Tabellen wenn die Spaltennamen nicht mehr eindeutig sind. Folgendes Beispiel:
Ich habe zwei ganz einfache Tabellen erstellt:
test1(id, str) und test2(id, str)
Primärschlüssel ist die id-Spalte. Ich habe in beiden Tabellen nur einen einzigen Eintrag.
1, tabelle1 (für test1)
1, tabelle2 (für test2)
wenn ich also einen Join von den beiden Tabellen mache:
select * from test1 a, test2 b where a.id=b.id
dann bekomme ich folgendes Ergebnis:
1 | tabelle1 | 1 | tabelle2
folgendes einfaches c# Schnippsel dazu:
Wie kann ich denn auf diese Weise einen Column eindeutig spezifizieren? "str" ist in diesem Fall ja nicht mehr eindeutig und b.str kann ich nicht verwenden (wirft eine Ausnahme). Es muss doch aber eine Möglichkeit geben, einen Column unter Angabe des Tabellennamens anzusprechen?
Gruß,
Martin
In Sachen .NET (speziell C#) bin ich noch sehr unbeholfen und versuche mich gerade an einer simplen Datenbankabfrage. Ich benutze dabei die Express-Variante von VisualStudio mit C# und einer mysql Datanbank. Die Verbindung zur Datenbank klappt und eine einfache Select-Anweisung habe ich schon erfolgreich ausgeführt. Ich hab nur ein Problem bei einem Join von mehreren Tabellen wenn die Spaltennamen nicht mehr eindeutig sind. Folgendes Beispiel:
Ich habe zwei ganz einfache Tabellen erstellt:
test1(id, str) und test2(id, str)
Primärschlüssel ist die id-Spalte. Ich habe in beiden Tabellen nur einen einzigen Eintrag.
1, tabelle1 (für test1)
1, tabelle2 (für test2)
wenn ich also einen Join von den beiden Tabellen mache:
select * from test1 a, test2 b where a.id=b.id
dann bekomme ich folgendes Ergebnis:
1 | tabelle1 | 1 | tabelle2
folgendes einfaches c# Schnippsel dazu:
Code:
myCommand = new MySqlCommand();
myAdapter = new MySqlDataAdapter();
myData = new DataTable();
myCommand.Connection = MyContext.Connection;
myCommand.CommandText = "select * from test1 a, test2 b where a.id=b.id";
myAdapter.SelectCommand = myCommand;
myAdapter.Fill( myData );
MessageBox.Show( ""+myData.Rows[0]["str"] ); // liefert tabelle1
MessageBox.Show( ""+myData.Rows[0]["b.str"] ); // wirft eine exception dass es den column nicht gibt
Wie kann ich denn auf diese Weise einen Column eindeutig spezifizieren? "str" ist in diesem Fall ja nicht mehr eindeutig und b.str kann ich nicht verwenden (wirft eine Ausnahme). Es muss doch aber eine Möglichkeit geben, einen Column unter Angabe des Tabellennamens anzusprechen?
Gruß,
Martin