Ligne suivante et pré. d'une table ds une BDD Access

Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 - 12 sept. 2004 à 17:21
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 - 16 sept. 2004 à 17:31
8-) Bl@cknight91Titi :-p

Bonjour,

J'aimerai savoir s'il existe des méthodes pour récupérer la row suivante ou précédente par rapport à celle actuellement lue ?

Je code en C#, ma BDD est de type Access, la connexion utilisée est ODBC.

J'ai pour l'instant fait ceci afin de récupérer la row précédente:

//Connexion à la BDD via une classe que j'ai développé.
BDD bdd = new BDD(file_bdd);
bdd.Open();

//Je récupère la table contenant les données sélectionnées
DataTable table = bdd.GetDataTable("select num, cultivar from fiche order by cultivar asc");

int prev_fiche = -1;

//Je parcours tt la table ligne par ligne
foreach (DataRow row in table.Rows)
{
//Si le n° de la fiche est trouvé je sors de la boucle
if (Convert.ToInt32(row["num"]) == num_fiche)
break;
//Je garde la valeur du n° de la fiche précédente
prev_fiche = Convert.ToInt32(row["num"]) ;
}

N'y aurait il pas plus simple, par une simple méthode même s'il faut passer par une DataSet ou DataGrid ?

Merci de votre aide

5 réponses

feuillou Messages postés 48 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 6 juillet 2007 1
16 sept. 2004 à 12:00
salut,
j'ai pas vraimment compris ton problème... Mais peut être que cela va t'aider:

imaginons que ton dataset ds est rempli...

//création d'un datarow pour pouvoir te balader dans ton dataset
DataRow dr=ds.Tables["table"].Rows[i];
//tu comptes le nombre de ligne de ton dataset
int nbre_de_lignes=ds.Tables["table"].Rows.Count;

Après j'ai pas compris ce que tu voulais faire, mais imaginons (encore!!) que tu veuilles récupérer la valeur de num et cultivar de la ligne 3, tu fais:

i=3
int num3=dr["num"];
cultivar3=dr["cultivar"]

Ainsi en changeant la valeur de i, tu choisis la ligne que tu veux et la colonne que tu veux...

Hésites pas à me demander d'être plus précis si t'as besoin

Feuillou
0
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
16 sept. 2004 à 15:20
8-) Bl@cknight91Titi :-p

En fait je voudrais tout simplement récupéré la row suivante et précédente de celle lue actuellement.

disons que j'ai 5 lignes dans ma table.
je suis actuellement a la ligne 3, dc i=2 puisque (0 à 4)

int i=2;
DataRow row = ds.Tables["table"].Rows[i];

comment récupéré la ligne 2 et 4, dc i=1 et i=3 sans passer par une boucle.
N'y a t il pas une méthode (genre: PrevRow() et NextRow())
0
feuillou Messages postés 48 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 6 juillet 2007 1
16 sept. 2004 à 16:34
Et en faisant :

int x, y;
DataRow row2 = ds.Tables["table"].Rows[x];
DataRow row3 = ds.Tables["table"].Rows[y];

et quand tu es à la ligne num 3, tu fais :

x=i+1;
y=i-1;
int variable1=row2["num"]//ligne 2
int variable2=row3["num"]//ligne 3

Je sais pas si c'est ce que tu veux mais bon...
Feuillou
0
feuillou Messages postés 48 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 6 juillet 2007 1
16 sept. 2004 à 16:35
Pardon pour l'erreur, c'est :

int variable1=row2["num"]//ligne 4
int variable2=row3["num"]//ligne 2

Feuillou
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
16 sept. 2004 à 17:31
8-) Bl@cknight91Titi :-p

C'est ce que j'ai fait :-/

Donc je suppose qu'il n'existe pas de méthodes toutes faites.

Merci qd m
0
Rejoignez-nous