myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » Ergebnisse einer Oracle-Anfrage in einer WPF-Anwendung darstellen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Ergebnisse einer Oracle-Anfrage in einer WPF-Anwendung darstellen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
der_sharky der_sharky ist männlich
myCSharp.de-Mitglied

Dabei seit: 12.05.2017
Beiträge: 21


der_sharky ist offline

Ergebnisse einer Oracle-Anfrage in einer WPF-Anwendung darstellen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

verwendetes Datenbanksystem: <ORACLE>
Guten Tag zusammen,
ich erstelle eine WPF Anwendung , die DataGrid hat und mit ORACLE verbunden sein sollte. Leider die Ergebnisse werden nicht im DataGrid dargestellt. Ich bin generell neu in C#. Danke für die Hilfe

Hier ist der Code

C#-Code:
private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        try
        {

            String connectionString = "Data Source=DWH; User Id=readonly; Password=********;";
            OracleConnection con = new OracleConnection();
            con.ConnectionString = connectionString;
            con.Open();
            OracleCommand cmd = new OracleCommand();
            cmd.CommandText = "SELECT * FROM SALARIES";
            cmd.Connection = con;
            OracleDataReader dr = cmd.ExecuteReader();
            DataGrid dg = new DataGrid();
            dr.Read();
        }
        catch (Exception exp) { }
    }
Neuer Beitrag 11.10.2018 13:18 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.170
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Bitte verwende den Debugger; zudem unterdrückst Du jegliche Exception.
 [Artikel] Debugger: Wie verwende ich den von Visual Studio?
Wir können auch nicht riechen, ob da jetzt eine Exception auftaucht oder nicht ;-)

Ich hoffe Dir ist zudem bewusst, dass Du zwar nen DataGrid instanziierst und den DataReader liest, aber weder was mit dem Ergebnis noch mit dem DataGrid machst.
Der DataReader kann ja nicht mit Magie entscheiden, was mit seinem Ergebnis passiert.

Bitte beachte zudem  [Artikel] Drei-Schichten-Architektur
In WPF sollte man immer mit MVVM arbeiten; dafür ist WPF ausgelegt.
Neuer Beitrag 11.10.2018 14:11 Beiträge des Benutzers | zu Buddylist hinzufügen
Palladin007 Palladin007 ist männlich
myCSharp.de-Mitglied

avatar-4140.png


Dabei seit: 03.02.2012
Beiträge: 1.306
Entwicklungsumgebung: Visual Studio 2019
Herkunft: NRW


Palladin007 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich denke, das könnte auch eine passende Lektüre sein:
 [FAQ] Wie finde ich den Einstieg in C#?

Nichts gegen dich, der_sharky, jeder hat Mal klein angefangen, aber Du wirst langfristig einfach besser voran kommen, wenn Du ein Buch liest, als wenn Du alles selber recherchierst ;)
Dein konkretes Thema wird in den Büchern (zumindest Einem) natürlich auch behandelt.
Neuer Beitrag 11.10.2018 14:54 Beiträge des Benutzers | zu Buddylist hinzufügen
der_sharky der_sharky ist männlich
myCSharp.de-Mitglied

Dabei seit: 12.05.2017
Beiträge: 21

Themenstarter Thema begonnen von der_sharky

der_sharky ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ok erstmal Danke für die Antwort an alle. Ich habe eine zweite Frage.
Ich habe in der xaml Datei eine DataGrid eingefügt. Wenn ich diese DataGrid mit Daten aus Oracle befüllen möchte, sollte ich davor die Spalten drin vordefinieren und wenn nein welche Möglichkeiten gibt dass sich die DataGrid automatisch anpasst.
Grüße

XML-Code:
<Window x:Class="OPEN_ORDERS_ORACLE_TABLE.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:OPEN_ORDERS_ORACLE_TABLE"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800" Loaded="Window_Loaded"
>
    <Grid Height="419" VerticalAlignment="Top">
        <DataGrid Margin="10,40,10,70"/>
    </Grid>
</Window>

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von der_sharky am 11.10.2018 16:17.

Neuer Beitrag 11.10.2018 16:17 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.450
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Erstes Ergebnis bei Google:  WPF DataGrid Control.

Evtl. hilft dabei auch:  [Artikel] MVVM und DataBinding

Bitte beachte auch:  [Hinweis] Wie poste ich richtig?
Neuer Beitrag 11.10.2018 16:21 Beiträge des Benutzers | zu Buddylist hinzufügen
der_sharky der_sharky ist männlich
myCSharp.de-Mitglied

Dabei seit: 12.05.2017
Beiträge: 21

Themenstarter Thema begonnen von der_sharky

der_sharky ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Danke an alle für die Hilfe hier ist meine Lösung:

C#-Code:
private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {

                String connectionString = "Data Source=DWH; User Id=readonly; Password=*******;";

                OracleConnection con = new OracleConnection();
                con.ConnectionString = connectionString;
                con.Open();
                OracleCommand cmd = con.CreateCommand();
                cmd.CommandText = "SELECT * FROM SALARIES";
                cmd.CommandType = CommandType.Text;
                OracleDataReader dr = cmd.ExecuteReader();
                DataTable dt = new DataTable();
                dt.Load(dr);
                DataGrid1.ItemsSource = dt.DefaultView;
                con.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

XML-Code:
<Window x:Class="OPEN_ORDERS_ORACLE_TABLE.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:OPEN_ORDERS_ORACLE_TABLE"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800" Loaded="Window_Loaded"
>
    <Grid Height="419" VerticalAlignment="Top">
        <DataGrid x:Name ="DataGrid1" ItemsSource="{Binding}" Margin="10,40,10,70"/>
    </Grid>
</Window>

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von der_sharky am 11.10.2018 17:23.

Neuer Beitrag 11.10.2018 17:23 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
markl markl ist männlich
myCSharp.de-Mitglied

avatar-4095.gif


Dabei seit: 29.09.2016
Beiträge: 77
Entwicklungsumgebung: VS2017 and VSC


markl ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Auch wenn das oben schon gesagt wurde. Nochmal verstärkt für die Nachwelt.
Auch wenn MVVM nicht gerade einfach für Anfänger aussieht, sollten man das so nicht bauen!
Auch wenn der Code erstmal das tut was er tuen soll.
Später wird sowas die Wartungshölle!
All dein Code in Window_Loaded zu packen ist etwa so wie: Beim Hausbau die Heizungsinstallation im Vorgarten installieren zu lassen - Kann man machen, ist halt *nicht wirklich gut*
Neuer Beitrag 12.10.2018 10:17 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
inflames2k inflames2k ist männlich
myCSharp.de-Poweruser/ Experte

avatar-3407.gif


Dabei seit: 03.01.2010
Beiträge: 2.241
Entwicklungsumgebung: Visual Studio 2010 Express


inflames2k ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von markl:
All dein Code in Window_Loaded zu packen ist etwa so wie: Beim Hausbau die Heizungsinstallation im Vorgarten installieren zu lassen - Kann man machen, ist halt *nicht wirklich gut*

Der Vergleich hinkt. Eher müssten Vorgarten und Wasseranschlüsse im Wohnzimmer verbaut sein.
Neuer Beitrag 12.10.2018 11:16 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als ein Jahr.
Der letzte Beitrag ist älter als ein Jahr.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 21.09.2020 11:14