MySql obtenir le nombre de lignes
J'essaie d'obtenir le nombre de lignes d'une table avec ceci :
string commandLine = "SELECT COUNT(*) FROM client";
using (MySqlConnection connect = new MySqlConnection(connectionStringMySql))
using (MySqlCommand cmd = new MySqlCommand(commandLine, connect))
{
connect.Open();
int count = (int)cmd.ExecuteScalar();
return count;
}
Et je reçois l'exception:
Specified cast is not valid.
Une idée de comment je peux résoudre ce problème?
- utiliser le débogueur pour voir quel type
cmd.ExecuteScalar();
renvoie en fait - Quelle est la version de MySQL que vous utilisez?
Vous devez vous connecter pour publier un commentaire.
Essayer cette
COUNT
fonction dans le serveur MySQL retourne une longue (BIGINT) par défaut, de sorte que c'est ce qui est retourné à partir de ExecuteScalar. En supposant que la table a moins de 2 milliards de dollars, ou alors les lignes, ce devrait être à l'abri.EDIT: assurez-vous aussi que pour gérer les exceptions dans votre code (E. g. si il y a Erreur de Connexion SQL).
Aussi, si ce n'est pas un
COUNT(*)
la valeur retournée parExecuteScalar()
peut être null (!)Si vous souhaitez utiliser la fonte, vous pouvez utiliser:
Comme mentionné ci-dessus, le COMTE de MySql retourne le type de données BIGINT, d'où casting avec un int échoue.