this error occure in my function:not all code paths return a value
-
Hi all, this error occure in my function:not all code paths return a value public bool ValidateNewUser(string strAlias, string strFirst, string strLast) { SqlConnection MyConn = new SqlConnection(ConfigurationSettings.AppSettings["MyOnlineShoppingConnectionString2"]); SqlCommand MyCmd = new SqlCommand("sp_CheckForDuplicates", MyConn); MyCmd.CommandType = CommandType.StoredProcedure; SqlParameter objParam1; SqlParameter objParam2; SqlParameter objParam3; SqlParameter objReturnParam; objParam1 = MyCmd.Parameters.Add("@UserName", SqlDbType.VarChar); objParam2 = MyCmd.Parameters.Add("@FirstName", SqlDbType.VarChar); objParam3 = MyCmd.Parameters.Add("@LastName", SqlDbType.VarChar); objReturnParam = MyCmd.Parameters.Add("@Duplicates", SqlDbType.Int); objReturnParam.Direction = ParameterDirection.ReturnValue; objParam1.Value = strAlias; objParam2.Value = strFirst; objParam3.Value = strLast; try { if (MyConn.State == ConnectionState.Closed) { MyConn.Open(); MyCmd.ExecuteNonQuery(); } if (Convert.ToInt32(objReturnParam.Value )>0) { lblResult.Text = "UserName already exists or you are already a registered user!"; return false; } else { return true; } MyConn.Close(); } catch (Exception ex) { lblError.Text = "Error Connecting to Database!"; } } i have two return value but how i can define these for all function? Thank You,
Hoda
-
Hi all, this error occure in my function:not all code paths return a value public bool ValidateNewUser(string strAlias, string strFirst, string strLast) { SqlConnection MyConn = new SqlConnection(ConfigurationSettings.AppSettings["MyOnlineShoppingConnectionString2"]); SqlCommand MyCmd = new SqlCommand("sp_CheckForDuplicates", MyConn); MyCmd.CommandType = CommandType.StoredProcedure; SqlParameter objParam1; SqlParameter objParam2; SqlParameter objParam3; SqlParameter objReturnParam; objParam1 = MyCmd.Parameters.Add("@UserName", SqlDbType.VarChar); objParam2 = MyCmd.Parameters.Add("@FirstName", SqlDbType.VarChar); objParam3 = MyCmd.Parameters.Add("@LastName", SqlDbType.VarChar); objReturnParam = MyCmd.Parameters.Add("@Duplicates", SqlDbType.Int); objReturnParam.Direction = ParameterDirection.ReturnValue; objParam1.Value = strAlias; objParam2.Value = strFirst; objParam3.Value = strLast; try { if (MyConn.State == ConnectionState.Closed) { MyConn.Open(); MyCmd.ExecuteNonQuery(); } if (Convert.ToInt32(objReturnParam.Value )>0) { lblResult.Text = "UserName already exists or you are already a registered user!"; return false; } else { return true; } MyConn.Close(); } catch (Exception ex) { lblError.Text = "Error Connecting to Database!"; } } i have two return value but how i can define these for all function? Thank You,
Hoda
public bool ValidateNewUser(string strAlias, string strFirst, string strLast) so you must return a value in the all way add "return false" to the end of function or remove the else if (Convert.ToInt32(objReturnParam.Value )>0) { lblResult.Text = "UserName already exists or you are already a registered user!"; return false; } return true;
-
Hi all, this error occure in my function:not all code paths return a value public bool ValidateNewUser(string strAlias, string strFirst, string strLast) { SqlConnection MyConn = new SqlConnection(ConfigurationSettings.AppSettings["MyOnlineShoppingConnectionString2"]); SqlCommand MyCmd = new SqlCommand("sp_CheckForDuplicates", MyConn); MyCmd.CommandType = CommandType.StoredProcedure; SqlParameter objParam1; SqlParameter objParam2; SqlParameter objParam3; SqlParameter objReturnParam; objParam1 = MyCmd.Parameters.Add("@UserName", SqlDbType.VarChar); objParam2 = MyCmd.Parameters.Add("@FirstName", SqlDbType.VarChar); objParam3 = MyCmd.Parameters.Add("@LastName", SqlDbType.VarChar); objReturnParam = MyCmd.Parameters.Add("@Duplicates", SqlDbType.Int); objReturnParam.Direction = ParameterDirection.ReturnValue; objParam1.Value = strAlias; objParam2.Value = strFirst; objParam3.Value = strLast; try { if (MyConn.State == ConnectionState.Closed) { MyConn.Open(); MyCmd.ExecuteNonQuery(); } if (Convert.ToInt32(objReturnParam.Value )>0) { lblResult.Text = "UserName already exists or you are already a registered user!"; return false; } else { return true; } MyConn.Close(); } catch (Exception ex) { lblError.Text = "Error Connecting to Database!"; } } i have two return value but how i can define these for all function? Thank You,
Hoda
First, be sure you close the connection all the time, in your code, the line MyConn.Close(); is never called! And the reason for the error is, that you don't return anything when there is an exception. you need to have a return statement in your catch block, however, cleaner solution would be to have a finally block after catch, where you return a value