Getting Exception “tous les chemins de code ne renvoient pas de valeur”

Bonjour, j’ai une méthode qui met à jour une table MySQL en utilisant une requête. J’utilise MS Visual Studio et phpmyadmin en tant que client SQL.

Méthode:

public static Member updateMember(ssortingng un, ssortingng pass, ssortingng name, ssortingng surname, ssortingng mf, ssortingng dob, ssortingng add, ssortingng phone, ssortingng email) { MySqlConnection connection = new MySqlConnection(conn); MySqlCommand cmd; ssortingng query = "UPDATE MEMBER SET Name='" + un + "', Surname='" + surname + "', MF='" + mf + "', DOB='" + dob + "', Address='" + add + "', PhoneNo='" + phone + "', EMail='" + email + "', UserName='" + un + "', Password='" + pass + "' "; tr y { connection.Open(); cmd = connection.CreateCommand(); cmd.CommandText = query; cmd.ExecuteNonQuery(); } catch (Exception) { throw; } finally { if (connection.State == System.Data.ConnectionState.Open) { connection.Close(); } } } 

Voici ce qui se passe. Je stocke certaines valeurs de TextBoxes dans un formulaire dans des variables de chaîne. Ensuite, j’envoie ces variables de chaîne à cette méthode. Je veux que cette méthode saisisse mes variables de chaîne et mette à jour ma table SQL avec les valeurs de mes variables.

Je reçois une erreur, tous les chemins de code ne retournent pas de valeur.

Votre méthode ne renvoie rien, vous devez retourner l’object membre.

Si vous n’avez pas besoin de retourner quoi que ce soit, changez simplement votre signature de méthode comme ceci,

 public static Void updateMember(ssortingng un, ssortingng pass, ssortingng name, ssortingng surname,ssortingng mf, ssortingng dob, ssortingng add, ssortingng phone, ssortingng email) 

Une alternative au message de @Sajeetharan consiste à renvoyer la valeur de votre appel ExecuteNonQuery

 connection.Open(); cmd = connection.CreateCommand(); cmd.CommandText = query; return cmd.ExecuteNonQuery(); 

Bien sûr, vous devez également renvoyer quelque chose à la fin de votre méthode (après le bloc finally ).

Pour les instructions UPDATE, INSERT et DELETE, la valeur renvoyée correspond au nombre de lignes affectées par la commande. Lorsqu’un déclencheur existe sur une table en cours d’insertion ou de mise à jour, la valeur renvoyée inclut le nombre de lignes affectées à la fois par l’opération d’insertion ou de mise à jour et le nombre de lignes affectées par le ou les déclencheurs. Pour tous les autres types d’instructions, la valeur de retour est -1. Si une annulation se produit, la valeur de retour est également -1.

Référence

Généralement, nous n’avons pas besoin de renvoyer un object comme Member lors de la mise à jour / l’insertion ou de la suppression. Nous devrions renvoyer uniquement un drapeau booléen ou rien .

Si vous renvoyez flag, vous devez le définir comme résultat de cmd.ExecuteNonQuery() > 0 et de la marque Catch .

Si vous ne renvoyez rien, modifiez simplement votre méthode pour

 public static void updateMember(...) { .... }