tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
2309
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    RealMarkus RealMarkus ist offline Rookie
    Registriert seit
    Dec 2007
    Beiträge
    6
    Hallo liebe Community,

    ich verwende zum kontaktieren meiner Datenbank die OleDB funktionen. Ich habe eine funktion die alle Reihen einer Tabelle durchgeht und von jeder eine bestimmte Spalte ausliest und in ein array speichert, diese funktion funktioniert auch sehr gut, ich habe sie unten gepostet!

    Nun möchte ich aber noch eine funktion, der man sagen muss welche Zeile aus einer datenbank sie komplett auslesen soll. Zum beispiel gibt man an MySQLQueryMakeArrayOf (Query)

    dann deklariert man im code z.B. string[] userdata = MySQLQueryMakeArrayOf ("SELECT * FROM `users` WHERE `ID` = '1'")

    Nun soll man mit userdata[Password] das Passwort des Users ausgeben können, oder userdata[Username] den usernamen, da ja alles über den User mit der ID 1 in das Array geschoben werden soll und so ansprechbar sein soll.

    Ist das überhaupt möglich?

    Hier die funktion die ich oben genannt habe:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    internal string[] RunMySQLQuery(string TheQuery, string ColumnName)
            {
                try
                {
                    //string TempData = "";
                    System.Collections.ArrayList TmpArray = new System.Collections.ArrayList();
                    MySQL_Command = new System.Data.OleDb.OleDbCommand(TheQuery, MySQL_Connector);
                    MySQL_Data_Reader = MySQL_Command.ExecuteReader();
                    while (MySQL_Data_Reader.Read())
                        TmpArray.Add(MySQL_Data_Reader[ColumnName].ToString());
                    MySQL_Data_Reader.Close();
                    return (string[])TmpArray.ToArray(typeof(string));
                }
                catch (System.Data.OleDb.OleDbException ex)
                {
                    return new string[10];
                }
                finally
                {
                    MySQL_Data_Reader.Close();
                }
            }
     

  2. #2
    M4st3r M4st3r ist offline Mitglied Brokat
    Registriert seit
    Jan 2005
    Ort
    Frankfurt am Main
    Beiträge
    297
    Hohoho

    Du kannst auf ein Array nur über die Indizes zugreifen. Das, was du suchst, ist eine KeyedCollection (Hashtable/Dictionary), irgendwas, was KeyValuePairs verwaltet.

    Wenn du deine Abfrage gegen die Datenbank feuerst musst du in der Funktion, welche die Daten in die KeyedCollection schreibt, den Namen der Spalte und den Wert der Methode Add übergeben -> MeineCollection.Add('Spaltenname', 'Wert der Spalte').

    Jetzt kannst du über MeineCollection["Key"] den Wert ausgeben lassen
     

  3. #3
    RealMarkus RealMarkus ist offline Rookie
    Registriert seit
    Dec 2007
    Beiträge
    6
    ah hmm also ich dachte über eine solche funktion nach, weil es sicher länger dauern würde die querys einzeln auszuführen, wie seht ihr das denn?

    Soll ich jede spalte der userdaten einzeln deklarieren oder eine solche KeyedCollection verwenden? Könnte mir dann jemand meine gepostete funktion so ändern, dass sie das array richtig erstellt + einer guten keyedcollection klasse
     

Ähnliche Themen

  1. MySQL: Ergebnis in einer Zeile angeben.
    Von DenisCGN im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 04.10.10, 20:04
  2. Antworten: 5
    Letzter Beitrag: 29.06.08, 17:46
  3. [c++] In bestimmte Zeile einer Datei schreiben
    Von Bertelcraft im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 11.11.07, 09:42
  4. Summe nicht in jede zeile schreiben(php,mysql)
    Von DarkZeratul im Forum PHP
    Antworten: 7
    Letzter Beitrag: 03.05.06, 10:50
  5. array in einer Zeile
    Von low-group im Forum PHP
    Antworten: 6
    Letzter Beitrag: 21.08.04, 23:38