Affichage des tables dans la console avec c#

Signaler
Messages postés
3
Date d'inscription
dimanche 13 mai 2012
Statut
Membre
Dernière intervention
1 novembre 2012
-
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
-
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

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
20
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...