Selektierte Spaltennamen aus ODBC Datenbanktabelle auslesen

CopWorker

Erfahrenes Mitglied
Hallo,

gerade bin ich dabei Einträge aus einer Datenbanktabelle auszulesen.
Das Select Statement erzeugen und die Zeilen auslesen ist gar kein Problem.

Frage:
Ist es möglich beim auslesen der Zeilen auch die Spaltennamen der betroffenen Zeilen auszulesen.

Hier ein Stück Quellcode.
C#:
try
            {
                if (clConnect.State == ConnectionState.Open)
                {
                    bit.DoBitClear(ref iRet, 0);
                    //clCommand = new OdbcCommand(strQuery, clConnect);

                    //Transaktion starten
                    clTransaction = clConnect.BeginTransaction();
                    clCommand.Transaction = clTransaction;
                    
                    //Aktuelles Query an die Command Instanz übergeben
                    clCommand.CommandText = strQuery;
                    iTimeout = clCommand.CommandTimeout;

                    sqlReader = clCommand.ExecuteReader();
                    iColumns = sqlReader.FieldCount;
                    sSqlResult.liColumn = new List<string>();

                    //Spaltennamen hier in die Liste eintragen
                    sSqlResult.liColumn.Add(???); //Erster Spaltenname
                    sSqlResult.liColumn.Add(???); //Zweiter Spaltenname
                    //usw...

                    while (sqlReader.Read())
                    {
                        values = new object[iColumns];
                        sqlReader.GetValues(values);
                        sSqlResult.liValues.Add(values);
                        iLines++;
                    }

                    sqlReader.Close();

                    //Transaktion beenden
                    clCommand.Transaction.Commit();
                    bit.DoBitClear(ref iRet, 4); //Transaktion verfolgreich
                }
            }
            catch (Exception exp)
            {

Ich weiß nicht wie ich an die Saltennamen rankomme.

Bitte um Tipps.

Vielen Dank.
Grüße von CopWorker
 

CopWorker

Erfahrenes Mitglied
Hallo zusammen,

ich hab´s gefunden.
Es geht mit der Methode ".GetName()" aus der Klasse "OdbcDataReader".

C#:
//Transaktion ausführen
                    sqlReader = clCommand.ExecuteReader();
                    iColumns = sqlReader.FieldCount;

                    //Selectierte Tabellennamen in Ergebnisliste übernehmen
                    for(int i = 0; i < iColumns; i++)
                        sSqlResult.liColumn.Add(sqlReader.GetName(i));

                    //Daten in Ergebnisliste übernehmen
                    while (sqlReader.Read())
                    {
                        values = new object[iColumns];

Jetzt fehlt mir nur noch die Nummer der Zeile aus der die jeweiligen Werte ausgelesen werden.

Vielleicht hat da jemand einen Tipp für mich.

Grüße von CopWorker
 

Neue Beiträge