Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

ich habe seit kurzem mit C# angefangen und hab natürlich jetzt ein kleines Problem bei dem mir auch stundenlange Online Recherche nichts brachte.;)

Ich habe eine winziges Programm, mit dem ich die Möglichkeit eine .mdb Datenbank zu nutzen auskundschaften will.

Hier erstmal der Code:


namespace Datenbank_test

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }


        private void Form1_Load(object sender, EventArgs e)

        {


        }


        private void button1_Click(object sender, EventArgs e)

        {

            OleDbConnection con = new OleDbConnection();

            con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=C:\\test.mdb";

            con.Open();

            OleDbCommand abfrage = new OleDbCommand();

            abfrage.CommandText = "SELECT * FROM inlist";

            abfrage.Connection = con;

            string datensatz = Convert.ToString(abfrage.ExecuteNonQuery());

            con.Close(); 

        }

    }

}

Die Variable datensatz enthält aber nie die Anzahl der Datensätze sondern immer 0. Ich habe erst vorhin gerafft, dass ich durch ExecuteNonQuery nur die Anzahl nicht den Inhalt der Spalten bekomme.

Deshalb:

1. Warum krieg ich immer 0 Datensätze raus? Entsprechende Tabelle enthält 5 Datensätze

2. Wie kann ich nicht die Anzahl sondern den Inhalt anzeigen lassen?

Ich hoffe das ihr mir weiterhelfen könnt, ich häng das fest. :)

MFG Attix

Hallo zusammen,

ich habe seit kurzem mit C# angefangen und hab natürlich jetzt ein kleines Problem bei dem mir auch stundenlange Online Recherche nichts brachte.;)

Ich habe eine winziges Programm, mit dem ich die Möglichkeit eine .mdb Datenbank zu nutzen auskundschaften will.

Hier erstmal der Code:

...

Die Variable datensatz enthält aber nie die Anzahl der Datensätze sondern immer 0. Ich habe erst vorhin gerafft, dass ich durch ExecuteNonQuery nur die Anzahl nicht den Inhalt der Spalten bekomme.

Deshalb:

1. Warum krieg ich immer 0 Datensätze raus? Entsprechende Tabelle enthält 5 Datensätze

2. Wie kann ich nicht die Anzahl sondern den Inhalt anzeigen lassen?

Ich hoffe das ihr mir weiterhelfen könnt, ich häng das fest. :)

MFG Attix

ExecuteNonQuery liefert eine DataReader Objekt zurück. Dieses muss dann durchlaufen werden. Dann kommst Du auch an die Daten.

Das die Onlinerecherche nichts bringt, halte ich für ein Gerücht. Wenn man ordentliche Suchbegriffe eingibt, erhält man mehr als ein Resultat.

abfrage.ExecuteNonQuery()

gibt einen int Wert zurück, der die Anzahl an betroffenen Datensätzen liefert.

abfrage.CommandText = "SELECT * FROM inlist";

Selektiert nur Datensetzte verändert diese aber nicht.

Lösung:


            abfrage.CommandText = "SELECT * FROM inlist";

            abfrage.Connection = con;

            using (IDataReader reader = abfrage.ExecuteReader())

            {

                int anzahlZeilen = 0;

                while (reader.Read())

                {

                    anzahlZeilen++;

                    String wertSpalte1 = reader[0].ToString();

                    int zahlInSpalteMitNamenXY = Convert.ToInt32(reader["XY"]);

                    int anzahlSpalten = reader.Depth;

                }

            }

            con.Close();

Desweiteren würde ich Dir folgende Microsoft Biliothek empfehlen:

Enterprise Library

Eine Komponente davon heisst "Data Application Block".

Nach der Installation sind die Dlls im GAC registriert und du kannst Sie als .Net Verweis deinem Projekt hinzufügen und dann benutzen. Die nötigen Dlls werden dann in das Ausgabeverzeichnis kopiert und du musst die Library nicht auf dem Zielrechner der Anwendung installieren.

Vorteil:

  • Abtraktion der Datenbankzugriffe erlaubt einheitlichen Umgang mit verschieden Datenquellen.
  • Du kannst einfach auf DataSets zugreifen und diese dann auch bequem als DataContext bei Steuerelementen einrichten.
  • einfach schreibweise.
  • Las but not least kannste die Verbindungszeichenfolge für ConnectionStrings in der App.config hinterlegen und so, gerade bei *.mdb Datenquellen den Speicherort ändern ohne was im QuellCode zu ändern.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.