none
Como Minha Aplicação sabe se o Insert ocorreu RRS feed

  • Pergunta

  • Olá Galera

    Tenho uma aplicação que faço um cadastro simples, pois executo OleDbCommand com o ExecuteNonQuery(), mas como faço para minha aplicação saber se o insert ocorreu mesmo, me disseram que o ExecuteNonQuery() retorna -1 quando da erro so que simulei um erro e ele cai no tratamento do try{}catch{}

    segue o codigo da função que faz o cadastro abaixo:

            public string registerUser(string username, string senha, string registro, int id_perfil)
            {
                string result;
                try
                {
                    using (conexao = new OleDbConnection(ConfigurationManager.AppSettings.Get("ConectionLocal")))
                    {
                        conexao.Open();
    
                        //Procedure que insere o Registro
                        OleDbCommand insertRegistro = new OleDbCommand("up_insertRegistro", conexao);
                        insertRegistro.CommandType = CommandType.StoredProcedure;
                        insertRegistro.Parameters.AddWithValue("@registro", registro);
    
                        if (insertRegistro.ExecuteNonQuery() != -1)
                        {
                            //Procedure que pega o id do registo cadastrado
                            OleDbCommand newIdRegistro = new OleDbCommand("up_getNewIds", conexao);
                            newIdRegistro.CommandType = CommandType.StoredProcedure;
                            newIdRegistro.Parameters.AddWithValue("@registro", registro);
    
                            OleDbDataReader id;
                            id = newIdRegistro.ExecuteReader(CommandBehavior.CloseConnection);
    
    
                            //Procedure Para pegar id da empresa do usuario que esta cadastrando
                            OleDbCommand getIdEmpresaUser = new OleDbCommand("up_getIdEmpresaUser", conexao);
                            getIdEmpresaUser.CommandType = CommandType.StoredProcedure;
                            getIdEmpresaUser.Parameters.AddWithValue("@username", username);
                            OleDbDataReader idEmpresaUser;
                            idEmpresaUser = getIdEmpresaUser.ExecuteReader(CommandBehavior.CloseConnection);
    
    
                            OleDbCommand registerUsername = new OleDbCommand("up_registerUsername", conexao);
                            registerUsername.CommandType = CommandType.StoredProcedure;
                            registerUsername.Parameters.AddWithValue("@username", username);
                            registerUsername.Parameters.AddWithValue("@senha", senha);
                            registerUsername.Parameters.AddWithValue("@id_registro", Convert.ToInt32(id[0]));
                            registerUsername.Parameters.AddWithValue("@id_empresa", Convert.ToInt32(idEmpresaUser[0]));
                            registerUsername.Parameters.AddWithValue("@id_perfil", id_perfil);
    
                            if (registerUsername.ExecuteNonQuery() != -1)
                            {
                                result = ConfigurationManager.AppSettings.Get("UserCadOk");
                            }
                            else
                            {
                                result = ConfigurationManager.AppSettings.Get("UserExists");
                            }
                        }
                        else
                        {
                            result = ConfigurationManager.AppSettings.Get("UserExists");
                        }
                    }
                }
                catch (Exception)
                {
                    throw;
                }
                finally
                {
                    conexao.Close();
                }
    
                return result;
    
            }

    obrigado

    sexta-feira, 1 de fevereiro de 2013 12:18

Todas as Respostas

  • Tem certeza que sua StoredProcedure up_registerUsername está correta? Tenta executar ela pelo sql server.  

    Adicione um nome a variável do exception e coloque mensagem de erro no result, leia o result, nele estará escrito a mensagem de erro, poderá te ajudar melhor....

    catch (Exception ex) { result = ex.ErrorMessage;

    throw; }


    Ao infinito e além!

    sexta-feira, 1 de fevereiro de 2013 17:19