1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

StringIndexOutOfBoundsException: String index out of range: -1

Estou começando agora a programar em java estou criando um aplicativo no netbeans com access ja consegui conectar o grande problema esta na manuntencao pretendo pegar da base do banco de dados os registros a mostra-los nas respectivas TextField esta tudo certo no codigo aparentemente na hora de rodar aparece o erro

Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: -1

este é o meu codigo da class conexão:

public class coenxao
{
  final private  String elisio = "sun.jdbc.odbc.JdbcOdbcDriver";
  final private String url ="jdbc:odbc:chinhama";
  final private String Usuario = "" ;
  final private String senha = "";
  private Connection conexao;
  private Statement statement;
  public ResultSet resultset;

  public boolean conectar()
  {
    boolean resultado = true;
    try
    {
      Class.forName(elisio);
      conexao = DriverManager.getConnection(url,"","");
      JOptionPane.showMessageDialog(null,"Banco de Dados Conectado com sucesso");
    }
        catch (ClassNotFoundException els)
        {
          JOptionPane.showMessageDialog(null,"Erro no Carregamento da driver "+els);
        }
    catch(ClassCastException jonas)
    {
      JOptionPane.showMessageDialog(null,"Driver nao localizado"+jonas);
      resultado = false;
    }

     catch(SQLException jonas1)
     {
      JOptionPane.showMessageDialog(null,"Fonte náo encontrada configure uma fonte odbc"+jonas1);
      resultado = false;
     }

     return resultado;
    }

  public void desconecta()
  {
    boolean resultado = true;
   try
   {
     conexao.close();
     JOptionPane.showMessageDialog(null,"Banco de Dados Fechada");
   }

   catch(SQLException jonas2)
   {
    JOptionPane.showMessageDialog(null,"Erro ao Fechar o Banco de Dados"+jonas2.getMessage());
    resultado = false;

   }
  }
  public void executeQuery(String SQL)
  {
    try
    {
      statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
      resultset = statement.executeQuery(SQL);
    }
    catch(SQLException sqll)
      {
        JOptionPane.showMessageDialog(null,"Não foi possivel executar o Sql passsado"+sqll.getMessage());
      }
  }
 }

O CODIGO NO FORMULARIO QUE SE PRETENDE VER

coenxao medicamento = new coenxao();

 try
        {
          medicamento.resultset.first();
          TFcodigo.setText(medicamento.resultset.getString("cod_medicamento"));
          TFnome.setText(medicamento.resultset.getString("nome_medicamento"));
          TFvalidade.setText(medicamento.resultset.getString("validade"));
          TFpreco.setText(medicamento.resultset.getString("preco"));
          TFquantidade.setText(medicamento.resultset.getString("quantidade"));
        }

        catch(SQLException els){System.out.println("nenhum registro localizado"+els);}

Este é o excerto do codigo do formulario onde se pretende ver a operaçao,é neste formulario onde está a chamada da funçao conecta:

coenxao medicamento;


    public formMedicamentos() {
        initComponents();
        medicamento = new coenxao();
        medicamento.conectar();
        medicamento.executeQuery("select *from Medicamentos");

       try {
          medicamento.resultset.first();
          TFcodigo.setText(medicamento.resultset.getString("cod_medicamento"));
          TFnome.setText(medicamento.resultset.getString("nome_medicamento"));
          TFvalidade.setText(medicamento.resultset.getString("validade"));
TFpreco.setText(medicamento.resultset.getString("preco"));
          TFquantidade.setText(medicamento.resultset.getString("quantidade"));
        }
        catch(SQLException els){
           System.out.println("nenhum registro localizado"+els);
        }
   aki está chamada da função conectar e outras linhas de codigo
  • onde exatamente acontece a java.lang.StringIndexOutOfBoundsException? vc poderia colocar o metodo? tente colocar todos os códigos indentados com 4 espaços para podermos ver o seu codigo melhor =D

    Diogo   10 de mai de 2013
  • Não peça urgência. Estamos fazendo um favor e não trabalhando pra você.

    Ataxexe   10 de mai de 2013
  • Obrigado pela dica sou novo nisso não achei que cairia mal o que eu escrevi desculp Ataxexe e todos outros

    Elisio Chinhama   10 de mai de 2013
  • Poste a stackTrace inteira. Acho que, talvez, você não tenha postado o ponto onde ocorre o erro...

    wellington.nogueira   10 de mai de 2013
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java netbeans ou faça a sua própria pergunta.