Forum: ASP.NET |
Thema:
Re: ADO.NET mit [Tabellenname].[Spaltenname] |
Von:
Stefan Lau (
23.11.2004 11:26) |
Ich habe jetzt eine Lösung wie man herausbekommt, aus welchen FELDERN und DATENBANKEN die Abfrage mehrerer Tabellen mit SELECT basiert, da das normal nicht im Spaltennamen mitgeliefert wird. Lediglich doppelt vorkommende Spaltennamen werden mit vorangestelltem Tabellennamen ausgegeben.
OleDbConnection conn = new OleDbConnection( sDatabaseConnectionString );
OleDbCommand cmd = new OleDbCommand("SELECT * FROM patient, op WHERE patient.id=op.id", conn);
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.KeyInfo);
DataTable schemaTable = dr.GetSchemaTable();
Die eigentliche Abfrage im ExecuteReader stellen und (ganz wichtig) die CommandBehavior.KeyInfo setzen. Das hatte ich bei den ersten eigenen Tests nicht gemacht, weshalb ich auch nur Standartwerte bekommen habe.
Mit GetSchemaTable bekommt man dann eine Tabelle die diese und ganz viele weitere Infos zum Ergebnis der Abfrage enthält.
Weitere Infos unter:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoledboledbdatareaderclassgetschematabletopic.asp?frame=true
Viele Grüße,
Stefan Lau
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!