Pb sql server et c# , compter les éléments de ma table [Résolu]

Signaler
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
-
Messages postés
47
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
14 août 2008
-
J'aimerai afficher le dernier element de ma table dans une windows form.
Pour l'instant le premier marche ( id = 1), suivant et précédent marche mais dernier ne marche pas .
Je n'arrive pas a compté le nombre de champs de ma table ( nbre de ligne), afin d'afficher le dernier id et les valeurs correspondantes.
Merci d'avance
A voir également:

11 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
int icnt = Convert.ToInt32(
cmd.ExecuteScalar() );

Sébastien FERRAND
[MVP C#]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
la requete type :

select * from table where id = (select max(id) from table)

Sébastien FERRAND
[MVP C#]
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
58
Ou alors
Select TOP 1 from table order by id desc

Amicalement, SharpMao
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
58
Excusez-moi, une petite erreur :

Select TOP 1 * from table order by id desc

Amicalement, SharpMao
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
oui aussi... mais je crois que TOP n'est pas standard...

Sébastien FERRAND
[MVP C#]
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
58
Il parle de sql server, pour cette base, ça fonctionne.

Amicalement, SharpMao
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
1
Le probleme que j'ai n'est pas de trouver la bonne requete sql
mais :

comment appeler celle-ci a l'interieur du framework en C#.

//extrait de code

this.sqlConnection1.Open();



int icnt =
this
.sqlCommand1.ExecuteNonQuery;

icnt doit représenter le nombre de ligne pour pointer sur le dernier enregistrement.
ExecuteNonQuery renvoie normalement le nombre de ligne affecté par la requete select ( ici une requete de type select id from table //sans compter), Mais elle me renvoie -1.

icnt = this.BindingContext[dataset, "nomdelatable"].Count;
j'ai essayé comme ca mais ici le count compte le nombre de table et me renvoie 1, j'aimerai compter le nombre de champs id a l'interieur de la table

Merci pour votre aide
Messages postés
47
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
14 août 2008

Hello
Essai un truc du genre


SqlConnection cnx = new SqlConnection("Ma chaine de connection");


SqlCommand cmd =
new SqlCommand(cnx);


cmd.CommandText="Select TOP 1 * from table order by id desc";


int icnt = (int)
cmd.ExecuteScalar();


Ourgggg !!!!!!
L'ours pas tres net.....
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
1
j'ai bien essayé ta méthode mais j'ai une erreur :
Le cast spécifié n'est pas valide.

sur la ligne : int icnt = (int)
cmd.ExecuteScalar();

Aucune idée de ce que ca peut etre.
Le programme se compile, c'est lors de l'exécution que cette erreur apparait!
Messages postés
135
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
11 mai 2007
1
Merci sebmafate, c'était bien une erreur de conversion
Messages postés
47
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
14 août 2008

Exacte merci Seb.....



Ourgggg !!!!!!
L'ours pas tres net.....