Laden...

verbindung zu mysql ist i.o! kriege jedoch keine daten zurück

Erstellt von multitrust vor 15 Jahren Letzter Beitrag vor 15 Jahren 904 Views
M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 15 Jahren
verbindung zu mysql ist i.o! kriege jedoch keine daten zurück

hallo leute

Ich versuche über .net in meine mysql DB zu conecten. Jedoch kriege ich weder daten noch fehlermeldung zurück. Beim aktualisieren es Browsers läuft alles ohne fehler ab.

Hier mein code:


<add name="mysql_connection" connectionString="server=xxx.xxx.xxx.xxx;database=traceless;uid=xxxxx;password=xxxxxxx;" providerName="MySql.Data.MySqlClient" />


        //Verbindung, Instanzierung
        string connStr = ConfigurationManager.ConnectionStrings["mysql_connection"].ConnectionString;
        MySqlConnection Conn = new MySqlConnection(connStr);

        //Reader erzeugen
        MySqlDataReader dbReader =null;
        MySqlCommand cmd = new MySqlCommand();
        cmd.Connection = Conn;

        cmd.CommandText = "Select * FROM members";
          Conn.Open();
        dbReader = cmd.ExecuteReader();
               
  
       while (dbReader.Read())
        {
            string row = "";
            for (int i = 0; i > dbReader.FieldCount; i++)
                row += dbReader.GetValue(i).ToString() + ", ";
            test.Text = row;
        }
        Conn.Close();

einen stop auf den string row gibt mir "" zurück!!

wo liegt den der Fehler. ich möchte nur die Daten der tabelle members anzeigen....
😦

D
496 Beiträge seit 2005
vor 15 Jahren

ich was zwar nicht was du als resultset haben willst aber bei einem Select * (welches man besser ersetzt durch angabe der spaltennamen) wirst du wahrscheinlich eine tabelle also datatable wollen, wenn dem so ist sie dir mal den mysqldataadpter an.
wenn du die daten tatsächlich lieber mit dem reader abfragen willst musst du das ein wenig anders machen.
deine variable row wird ja nach jeder row die der reader ließt wieder auf "" gesetzt.
selbst wenn du die variable ausserhalb der while schleife initialisiert würdest du so ein wohl eher unbrauchbare ergebnis erziehlen da du ja dann einen langen string hättest in dem alle spalten aller zeilen nebeneinander und mit komma getrennt stehen.

//edit:
wo, wie möchtest du die Daten denn anzeigen?

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 15 Jahren

nun, eigentlich möchte ich nur den inhalt der Tabelle "members" an das label "test" übergeben.

ja, row wird auf "" gesetzt nachdem die übergabe des inhalts von row zum label "test" statt gefunden hat....

warum erwähnst du "...wenn du die daten tatsächlich lieber mit dem reader abfragen willst...."
Naja, gibt es da unterschiede???

3.003 Beiträge seit 2006
vor 15 Jahren

nun, eigentlich möchte ich nur den inhalt der Tabelle "members" an das label "test" übergeben.

Aber du übergibst nur die letzte Zeile der Tabelle members an das Label.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

J
3.331 Beiträge seit 2006
vor 15 Jahren

Hallo,

acht Augen sind besser als zwei. Die for-Schleife wird überhaupt nicht durchlaufen, auch nicht einmal:

// an der zweiten Stelle müsste es "kleiner als" heißen
            for (int i = 0; i > dbReader.FieldCount; i++)
                row += dbReader.GetValue(i).ToString() + ", ";

Deshalb bleibt der String row natürlich leer.

nun, eigentlich möchte ich nur den inhalt der Tabelle "members" an das label "test" übergeben.

Aber du machst das für jede Zeile und innerhalb einer jeden Zeile für alle Spalten. Das wirkt in der Tat etwas sinnfrei. Auch wenn die Zuweisung an test.Text bei jeder Zeile erfolgt, wirst du das Ergebnis erst am Ende der Schleife zu sehen bekommen - also nur für die letzte Zeile.

warum erwähnst du "...wenn du die daten tatsächlich lieber mit dem reader abfragen willst...."

Wenn du eine ganze Datenmenge abrufen willst, ist es sinnvoller, auch das Ergebnis als Datenmenge zu verwenden, nämlich als DataTable. Zum Füllen der Tabelle kann man entweder DataTable.Load(DbDataReader) oder DbDataAdapter.Fill(DataTable) benutzen.

Gruß Jürgen

3.003 Beiträge seit 2006
vor 15 Jahren

Die for-Schleife wird überhaupt nicht durchlaufen, auch nicht einmal:

// an der zweiten Stelle müsste es "kleiner als" heißen  

Moah. You, Sir, win the internet. 😉

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 15 Jahren

scheiiiii**e! tatsächlich... mensch, danke!! total übersehen gester nacht...

nochmals danke jungs....!!