Laden...

Datenbankproblem mit ADO.NET - C#

Erstellt von steve46 vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.736 Views
Thema geschlossen
S
steve46 Themenstarter:in
41 Beiträge seit 2010
vor 13 Jahren
Datenbankproblem mit ADO.NET - C#

verwendetes Datenbanksystem: <ADO.NET>

Hallo!!!

Ich hab hier jetzt mal die Datei streetbusiness.accdb:

id datum geschäft unternehmen euro
1 28.12.2010 billa greiner € 21,03
2 29.12.2010 billa baufirma € 32,57

und gebe sie mit c# so aus:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data;
using System.Data.OleDb;

namespace WpfApplication1
{
    /// <summary>
    /// Interaktionslogik für MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        public void db()
        {
            OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=streetbusiness.accdb");

            con.Open();
            string query = "select * from einträge";

            OleDbCommand com = new OleDbCommand(query, con);
            OleDbDataReader reader = com.ExecuteReader();

            while (reader.Read())
            {
                cmdTextHeute.Text = cmdTextHeute.Text + reader["datum"];
            }

            reader.Close();
            con.Close();
        }
    }
}

Ich bekomme keine Fehlermeldungen, das Programm wird auch ausgeführt, doch das Textfeld bleibt leer!

lg steve46

Jeder von uns hat "klein" angefangen, und jeder versucht "größer" zu werden!

F
155 Beiträge seit 2009
vor 13 Jahren

Hallo,

sollte so funktionieren, geh doch mal step by step durch und schau was passiert.

fz

"We better hurry up and start coding, there are going to be a lot of bugs to fix."

S
steve46 Themenstarter:in
41 Beiträge seit 2010
vor 13 Jahren

ich bin das schon 100 mal durchgegangen, es wird kein text ausgegeben

lg steve46

Jeder von uns hat "klein" angefangen, und jeder versucht "größer" zu werden!

F
155 Beiträge seit 2009
vor 13 Jahren

Hallo,

du gibst ja nur einen relativen Pfad an, bist du sicher das die Datenbank im debug Order auch Einträge enthält?

fz

"We better hurry up and start coding, there are going to be a lot of bugs to fix."

S
steve46 Themenstarter:in
41 Beiträge seit 2010
vor 13 Jahren

wie kann ich das überprüfen?

Jeder von uns hat "klein" angefangen, und jeder versucht "größer" zu werden!

F
155 Beiträge seit 2009
vor 13 Jahren

Dort wo die exe liegt in der Datenbank nachsehen

"We better hurry up and start coding, there are going to be a lot of bugs to fix."

S
steve46 Themenstarter:in
41 Beiträge seit 2010
vor 13 Jahren

also bin jetzt im debug ordner mit den ganzen exe dateien und da soll ich die streetbusiness.pdb programm dabeug database datei öffnen oder wie?

Hinweis: Ich hab die Datenbankdatei projekt/streetbusiness.accdb gespeichert also da wo auch die .cs dateien liegen

Jeder von uns hat "klein" angefangen, und jeder versucht "größer" zu werden!

F
155 Beiträge seit 2009
vor 13 Jahren

Probier mal hier den absoluten Pfad anzugeben


@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=streetbusiness.accdb"

"We better hurry up and start coding, there are going to be a lot of bugs to fix."

S
steve46 Themenstarter:in
41 Beiträge seit 2010
vor 13 Jahren

hab ich funktioniert nicht:


OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Benutzer\Strasser Stefan\Eigene Dokumente\Visual Studio 2010\Projects\streetbusiness\streetbusiness\streetbusiness.accdb");

Jeder von uns hat "klein" angefangen, und jeder versucht "größer" zu werden!

D
41 Beiträge seit 2009
vor 13 Jahren

Du solltest das \ schon richtig maskieren.
Mach mal aus dem \ in deinen Pfadangaben ein \ oder schreib vor dem ganzen String ein @

edit:
Vergess was ich geschrieben habe. Da steht ja schon ein @.
Ist echt noch früh für mich

3.825 Beiträge seit 2006
vor 13 Jahren

Hallo Steve,

string query = "select * from einträge";

verträgt die Datenbank Umlaute ? Probier mal [einträge] oder nenne die Tabelle besser um in eintraege. Umlaute in Tabellen- und Spaltennamen besser vermeiden.

Funktioniert die Abfrage im SQL-Studio / Access ?

Gehe mal Dein Programm mit dem Debugger durch.

Vielleicht ist der letzte Eintrag leer. Probier mal

 cmdTextHeute.Text += cmdTextHeute.Text + reader["datum"];

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

S
steve46 Themenstarter:in
41 Beiträge seit 2010
vor 13 Jahren

Vielen Dank für eure Antworten!!!

Ich hab den Pfad nun mit \ maskiert.
Ich hab die Tabelle in eintraege umbenennt.
Und ich habe die Zeile zu cmdTextHeute.Text += cmdTextHeute.Text + reader["id"]; geändert.

Es funktioniert aber nach wie vor nicht!

Jeder von uns hat "klein" angefangen, und jeder versucht "größer" zu werden!

3.825 Beiträge seit 2006
vor 13 Jahren

Und Debugger probiert ?

Findet er überhaupt Datensätze ?

Statt reader["datum"] besser reader["datum"].ToString()

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

S
steve46 Themenstarter:in
41 Beiträge seit 2010
vor 13 Jahren

Wie ob der Debugger was findet wo kann ich das nachschauen?

Jeder von uns hat "klein" angefangen, und jeder versucht "größer" zu werden!

F
155 Beiträge seit 2009
vor 13 Jahren

Hallo,

wenn es möglich ist lad doch mal das Projekt hoch.

fz

"We better hurry up and start coding, there are going to be a lot of bugs to fix."

2.891 Beiträge seit 2004
vor 13 Jahren

Wie ob der Debugger was findet wo kann ich das nachschauen?

Haltepunkt in einer Zeile setzen, Programm ausführen, Aktion ausführen, bis der Haltepunkt erreicht wird, und dann schrittweise Weiterdebuggen!? Siehe auch Debuggen in Visual Studio

Wird die db()-Methode überhaupt aufgerufen?

S
steve46 Themenstarter:in
41 Beiträge seit 2010
vor 13 Jahren

ich kann das mit der express version nicht machen, dass ich die haltepunkte setze.

Ich hab jetzt auch gan unten noch im Code, die Methode aufgrufen:

db();

aber es funktioniert nicht!

lg steve46

Jeder von uns hat "klein" angefangen, und jeder versucht "größer" zu werden!

3.430 Beiträge seit 2007
vor 13 Jahren

Hallo,

ich verwende die Express Version zwar nicht, aber ich bin mir doch 99.9999% sicher dass die dort den Debugger drinnen haben.

Hier findest du ein Tutorial wie man einen Debugger benutzt: Debugging

Wenn das immer noch nix nützt dann kannst du mal ein paar Ausgaben im Code hinzufügen, damit du siehst was er durchläuft und was nicht.

Bitte beachte: [Hinweis] Wie poste ich richtig? 1.1 und 1.1.1

Gruss
Michael

1.552 Beiträge seit 2010
vor 13 Jahren

Hallo steve46,

ich kann das mit der express version nicht machen, dass ich die haltepunkte setze.

Doch das geht. Einfach links neben dem Textfeld in der Zeile klicken in der du anhalten willst, und nicht vergessen den Buildvorgang auf "Debug" zu wechlsen. Wenn ich mich gut erinnere ist der bei der Express fix eingestellt.

Gruß
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

S
steve46 Themenstarter:in
41 Beiträge seit 2010
vor 13 Jahren

Ja ok hab jetzt die Zeile rot markiert und so ein roter Kreis ist auch links aber laut der anleitung von michlG sollte ich dann doch die namen und die values von den variablen sehen, ich starte das debuggen und siehe aber das fenster nicht mit den daten

Jeder von uns hat "klein" angefangen, und jeder versucht "größer" zu werden!

1.552 Beiträge seit 2010
vor 13 Jahren

Fahr mit der Maus über die Variable, dann erscheint sie nach ca 1sec. Alternativ kannst du das "Locals"-Fenster einblenden. Finden tust du es unter dem Menüpunkt "Windows".
Edit: Achtung: Blende das Fenster in der Debugansicht ein, denn das VS hat merkt sich nach Typ, also Degugmodus oder Entwicklermodus die ausgewählten Ansichten

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

S
steve46 Themenstarter:in
41 Beiträge seit 2010
vor 13 Jahren

Also hab jetzt die Variable:


cmdTextHeute.Text += cmdTextHeute.Text + reader["id"].ToString();

markiert, den Haltepunkt gesetzt und den das Debuggen gestartet und bin jetzt dann auf Debuggen => Fenster => Lokal gegangen. Das Fenster ist leer.

lg steve46

Jeder von uns hat "klein" angefangen, und jeder versucht "größer" zu werden!

1.552 Beiträge seit 2010
vor 13 Jahren

Ok das ist jetzt eigenartig.
Jedoch habe ich noch eine Frage:
Bist du dir sicher dass du dich im Programm an der Position des Breakpoints befindest? Ist die aktuelle Codezeile gelb markiert?

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

S
steve46 Themenstarter:in
41 Beiträge seit 2010
vor 13 Jahren

Nein das war nie Gelb.
Ich klicke die Zeile links am Rand an und das ist ein roter Kreis.
Dann gehe ich auf Debuggen, und das Programm wird gestartet.
Zuletzt gehe ich dann auf Debuggen => Fenster => Lokal.

Jeder von uns hat "klein" angefangen, und jeder versucht "größer" zu werden!

1.552 Beiträge seit 2010
vor 13 Jahren

Ok alles klar,

du kannst nur im Fenster "Lokal" etwas sehen wenn du dich im laufenden Programm in der aktuellen Brakepoint zeile befindest. Ansonsten schlägt der "Debugger" nicht an. Sobald das Programm den Brakepoint erreicht wird sich das VS schon melden. Sorge dafür dass der Code zum Brakepoint ausgeführt wird.

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

S
steve46 Themenstarter:in
41 Beiträge seit 2010
vor 13 Jahren

O.K habs jetzt ich bin auf einzelschritt gegangen und jetzt wird es gelb markiert aber sobal er zur zeile public void db() kommt macht er das programmfenster auf und ich kann dann nicht mehr weiter gehen mit dem gelben pfeil

Jeder von uns hat "klein" angefangen, und jeder versucht "größer" zu werden!

1.552 Beiträge seit 2010
vor 13 Jahren

Es gibt auch noch weitere Buttons:
Step Into (hüpf in die Methode hinein)
Step Over (nächste zeile)
Step Out (hüpf aus die Methode heraus)

Ich denke diese Fragen duften ziemlich stark nach 1.1.1 [Hinweis] Wie poste ich richtig?

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

Hinweis von michlG vor 13 Jahren

Hallo steve46,

da du mehrfach gegen [Hinweis] Wie poste ich richtig? 1.1 und 1.1.1 verstoßen und auch meinen Hinweis ein paar Beiträge vorher nicht beachtet hast ist dieser Thread hiermit geschlossen.

Gruss
Michael

Thema geschlossen