bibibiba
Messages postés3Date d'inscriptionjeudi 15 novembre 2007StatutMembreDernière intervention23 juillet 2008
-
25 juin 2008 à 10:45
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
28 juin 2008 à 21:43
Bonjour,je suis novice en C# et j'ai une classe BaseAccess qui doit permettre de lire les données d'un utilisateur contenues dans une base,pour ce faire je veux utiliser une Hashtable qui recueillerait les données de la personne a sa connexion mais j'ai beau faire,la hashtable ne prends aucun argument,pourriez vous m'aider?
using System;
using System.Collections;
using System.Data;
using System.Data.OleDb;
using Authentification;
using utile;
using System.Reflection;
using System.ComponentModel;
using System.Windows.Forms;
namespace General
{
public class BaseAccess
{
private string filename;
private string connStr;
private OleDbConnection oConn;
private OleDbDataReader rdr;
private OleDbCommand oCmd=new OleDbCommand();
// type record contenant le nom d'une colonne et sa valeur associée
public struct record
{
public record(string column_name, object content)
{
this.column_name = column_name;
this.content = content;
}
public string column_name;
public object content;
}
// constructeur nécessitant le path du fichier base de donnée Access
public BaseAccess()
{
//le filename correspond a la ligne du .ini
this.filename = Parametres.chemin_base;
this.connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+filename;
}
~BaseAccess()
{
this.Close();
}
// établie une connexion sur la base Access
public bool Open()
{
try
{
this.oConn = new OleDbConnection(this.connStr);
this.oConn.Open();
return true;
}
catch
{
return false;
}
}
// ferme la connexion à la base Access
public bool Close()
{
try
{
this.oConn.Close();
return true;
}
catch
{
return false;
}
}
// execute une requête SQL sur la base Access
public bool Execute(string ordre)
{
try
{
this.oCmd = new OleDbCommand(ordre,this.oConn);
this.rdr = this.oCmd.ExecuteReader();
Console.WriteLine("La requete a reussie");
return true;
}
catch
{
Console.WriteLine("La requete a echoué");
return false;
}
}
// renvoi une ArrayList contenant des enregistrements de type record
// contenant les différents champs de la ligne lue
public ArrayList Fetch()
{
ArrayList row = new ArrayList();
if (this.rdr.Read())
{
record rec;
for (int i=0;i<this.rdr.FieldCount;i++)
{
rec.column_name = this.rdr.GetName(i);
rec.content = this.rdr[i];
row.Add(rec);
}
}
return row;
}
public Hashtable Fetch2()
{
Hashtable row = new Hashtable();
MessageBox.Show("compte table\n"+this.rdr.FieldCount);
if (this.rdr.Read())
{
//record rec;
for (int i=0;i<this.rdr.FieldCount;i++)
{
//rec.column_name = this.rdr.GetName(i);
//rec.content = this.rdr[i];
row.Add(this.rdr.GetName(i),this.rdr[i]);
}
}
return row;
}