| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: C# + Oracle --> SELECT * FROM ... im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Servus! Ich stehe vor einem Problem welches wohl keines sein sollte, leider finde ich auch bei verschiedenen Tutorials keine ...
![]() |
| | #1 (permalink) |
C# + Oracle --> SELECT * FROM ... Anzeige Servus! Ich stehe vor einem Problem welches wohl keines sein sollte, leider finde ich auch bei verschiedenen Tutorials keine Antwort. Wie finde ich heraus wieviele Ergebnisse (Spalten) ein "SELECT * FROM" hat? Die Anzahl kann von 1 bis n alles sein und es soll jedes Ergebnis ausgegeben werden. Wie programmiere ich die rot formatierte Zeile dynamisch? Code: using (OracleConnection conn = new OracleConnection(connectionstring))
{
conn.Open();
using (OracleCommand comm = new OracleCommand(sql, conn))
{
using (OracleDataReader rdr = comm.ExecuteReader())
{
while (rdr.Read())
{
Console.WriteLine(rdr[0]);
}
rdr.Close();
}
}
conn.Close(); Edit: Hatte zuerst das Problem etwas falsch beschrieben, falls jemand es gerade gelesen hat ... Geändert von RemoteC (09.11.11 um 22:22 Uhr) | |
| | |
| | #2 (permalink) |
![]() Registriert seit: 17.10.09 ![]() Likes: 10 | Ich habe nichtz wirklich viel Ahnung von dem ganzen .net zeug. Aber wenn ich mich nicht irre sollte das hier helfen. SO WIRD´S GEMACHT: Abrufen des Spaltenschemas mit der Data Reader GetSchemaTable-Methode und Visual C# .NET |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.10 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 210 | wenn ich mich nicht irre, hilft dir das hier weiter ... Code: for(int idx=0;idx<rdr.FieldCount;idx++)
{
Console.WriteLine("Feld {0} ist vom Typ {1} und hat den Wert {2}",idx,rdr.getFieldType(idx),rdr[idx]);
}
__________________ Code: :(){ :|:& };: |
| | |
| | #4 (permalink) |
| Themenstarter | Danke für die rasche Antwort! Das rdr.FieldCount drüfte ich wohl übersehen haben, mea culpa ![]() Eine Sache gehört noch geändert: getFieldType gibt es nicht, das heißt GetDataTypeName Zumindest funktioniert nur das bei mir ...funktionierender Code: Code: while (rdr.Read())
{
for (int idx = 0; idx < rdr.FieldCount; idx++)
{
Console.WriteLine("Feld {0} ist vom Typ {1} und hat den Wert {2}", rdr.GetName(idx), rdr.GetDataTypeName(idx), rdr[idx]);
}
Console.WriteLine("_____________");
}
rdr.Close(); Geändert von RemoteC (09.11.11 um 21:54 Uhr) |
| | |
| | #5 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.10 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 210 | also "GetFieldType(int)" sollte es seit .net 2.0 geben, und es sollte dir einen System.Type geben ... ansonsten hast du einen komischen OracleDataReader ...
__________________ Code: :(){ :|:& };: |
| | |
| | #6 (permalink) |
| Themenstarter | Es gibt diese Funktion aber wenn ich es hinschreibe wird es rot unterwellt und imho macht doch GetDataTypeName das selbe ![]() |
| | |
| | #7 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.10 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 210 | naja ... fast ... das eine ist ein Type ... das andere ein String mit dem Namen des Typs ... aber vermutlich hinreichend
__________________ Code: :(){ :|:& };: |
| | |
| | #8 (permalink) |
| Themenstarter | Vielleicht ist genau das das Problem: ein Type müsste erst in einen String konvertiert werden bevor es per Console.WriteLine ausgegeben werden kann?! rdr.getFieldType(idx).ToString(); sollte also funktionieren?! Ist in dem Fall aber egal weil das Ergebnis das selbe ist Ich habe von C# nicht so viel Ahnung, habe bisher fast nur mit PHP programmiert und da ist vieles einfacher (z.B. das automatische Typecasting) bzw. muss man da etwas anders denken weil es eine Skriptsprache ist. |
| | |
| | #9 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.10 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 210 | WriteLine(...) akzeptiert einen formatstring sowie eine quasi beliebige anzahl an objekten mit denen es die platzhalter im formatstring auffüllt ... objekte werden hierfür automatisch in text umgesetzt ... im zweifel mittels Object.ToString()
__________________ Code: :(){ :|:& };: |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Sicherheitslücken in Oracle PDF-Import-Erweiterung für OpenOffice.org | rudy | (In)security allgemein | 4 | 02.02.11 17:39 |
| Oracle Timestamp to int? | Metathron | Code Kitchen | 0 | 04.12.07 13:57 |
| Oracle View | Metathron | Code Kitchen | 0 | 02.10.07 16:16 |
| Oracle 10 unter Suse 9.3 installieren | jagdfalke | Linux/UNIX | 2 | 28.09.05 11:49 |
| oracle debian installation | Dawen | Linux/UNIX | 1 | 11.03.05 12:29 |