Comment faire pour récupérer tous les champs d'un enregistrement à l'aide de OracleDataReader?

Ma question, qui est similaire à cette une, est de savoir comment puis-je utiliser OracleDataReader pour récupérer tous les champs d'un enregistrement donné? Actuellement, j'ai été en utilisant cette méthode, qui ne retourne qu'une seule valeur de la colonne à la fois:

public string Select_File(string filename, string subdirectory, string envID)
{
    Data_Access da = new Data_Access();
    OracleConnection conn = da.openDB();

    OracleCommand cmd = new OracleCommand();
    cmd.Connection = conn;
    cmd.CommandText = "SELECT * FROM EIP_Deployment_Files" 
        + " WHERE Filename ='" + filename + "'"
        + " AND Subdirectory = '" + subdirectory + "'"
        + " AND Environment_ID = '" + envID + "'";
    cmd.CommandType = CommandType.Text;

    string x;
    OracleDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows) //file exists in DB
    {
        dr.Read();
        x = dr.GetString(2).ToString(); //return baseline filename (index 2)
    }
    else
    {
        x = "New File";
    }

    cmd.Dispose();
    da.CloseDB(conn);
    return x;
}

Je suis sûr que cette méthode est loin d'être parfait et ppl aura vite fait de le signaler (j'ai été donnés par mon directeur de thèse, puisque je n'ai aucune expérience préalable dans ASP.NET) mais je me préoccupe vraiment, c'est que cela fonctionne. Ma question est: comment peut-il être modifié pour revenir tous les champs d'un enregistrement donné?

Les champs seront de VARCHAR2, CHAR, ou de la DATE de types de données, (si cela fait une différence) et certaines de ces valeurs peuvent être null. Je pense que je pourrais les convertir en chaînes et de les retourner comme une liste?

Remarque: cmd.CommandText est vulnérable à des attaques par injection

OriginalL'auteur user1985189 | 2013-04-25