Affichage des tables dans la console avec c#

cs_risaaa Messages postés 3 Date d'inscription dimanche 13 mai 2012 Statut Membre Dernière intervention 1 novembre 2012 - 12 oct. 2012 à 19:16
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 14 oct. 2012 à 17:16
Bonsoir,
je voudrais savoir comment afficher des tables d'Oracle 10g XE avec c# dans Visual Studio 2012. Au fait j'ai le programme principale et une classe que j'ai ajouté qui comporte 4 méthodes la connexion, fermeture, liste des Hôtels et liste des clients, bref je dois afficher ces liste en appelant les méthodes dans le programme principale voila les code
Code principale:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TP1Part2
{
class Program
{
static void Main(string[] args)
{
int i;
connexion.Connexion();
// lister les Hotel
Console.Write("La liste des hôtels: \n");
// connexion.GetHotel();
Console.Write(connexion.GetHotel());



// lister les Hotel
Console.Write("\nLa liste des clients: \n");
connexion.GetClient();
// Console.Write( connexion.GetClient());



connexion.close();
i = Console.Read();
}

}
}
===================================================================================
et Class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Client.OracleDataReader;
using Oracle.DataAccess.Types;
using System.Data;
using System.Data.SqlClient;

namespace TP1Part2
{


class connexion
{
static string sql;
static OracleConnection conn;
static OracleCommand cmd;
static OracleDataAdapter da;
static DataSet ds;

public static void Connexion ()
{
try
{
string ordb " User Id System; Password = oracle;";
conn = new OracleConnection(ordb);
conn.Open();
Console.Write("La connexion est ouverte\n");
}
catch (OracleException e) {Console.Write (e); }
/*object k = conn.State.ToString ();
Console.Write(k);*/
}

public static DataTable GetHotel()
{
Console.WriteLine("Accès à la table de Hôtel");
sql "select nom_hotel from hotel where region 'alger'";
cmd = new OracleCommand(sql, conn);
cmd.CommandType = CommandType.Text;
da = new OracleDataAdapter(cmd);
ds = new DataSet();
da.Fill(ds);
return ds.Tables[0] ;
// OracleDataReader reader= cmd.ExecuteReader();
// affichage résultats


}


public static DataTable GetClient()
{
sql = "select * from client";
cmd = new OracleCommand (sql, conn);
cmd.CommandType = CommandType.Text;
da = new OracleDataAdapter (cmd);
ds = new DataSet ();
da.Fill(ds);
return ds.Tables[0];
}

// Liste des hotel ayant + de 5 Chambre
/* public static DataTable GetHot()
{sql = "select (nom_hotel where
}*/

//Fermeture

public static void close()
{
conn.Close();
Console.Write("\nLa connexion est fermée");
}


}}
désolé j'ai laissé des commentaire qui ne sont pas necessaire car je faisais des essais
et pour information je suis débutante en c# je viens de commencer à l'apprendre et j'ai beaucoup cherché, li de documents soit ça marche pas soit c'est pas pour console donc s'il vous plait aidez moi car je vais devenir folle et merci d'avance

1 réponse

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
14 oct. 2012 à 17:16
Salut,

si tu veux afficher le texte directement, il ne faut pas renvoyer un DataTable mais un String.
Le mieux est quant même de faire une fonction dédiée pour l'affichage mais bon...

public static String GetHotel() 
{ 
    /* (...) */

    // affichage résultats 
    String sRetour = string.Empty;
    int cpt = 0;
    foreach(DataRow r in ds.Tables[0])
    {
        sRetour +string.Format("Hotel {0} {1}\r\n", 
            ++i,
            r["nom_hotel"].ToString());
    }

    return sRetour;
} 


bye...
0
Rejoignez-nous