cs_risaaa
Messages postés3Date d'inscriptiondimanche 13 mai 2012StatutMembreDernière intervention 1 novembre 2012
-
12 oct. 2012 à 19:16
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 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
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201626 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;
}