Exceção Parameter index out of range (2 > number of parameters, which is 1)

Caros colegas,
Estou tentando finalizar meu pequeno sistema sistema, mas estou com dificuldade de fazer alteração. Sempre que vou atualizar algum campo gera esse erro: Exceção Parameter index out of range (2 > number of parameters, which is 1)

Este é são os métodos que estou utilizando:

CADASTRAR OS

[code]public class osDAO extends ConnectionMySql
{
public void cadastrar_os (OS servico) throws Exception
{
OpenDatabase();

    sql = "INSERT INTO tbl_os (dt_chamado,"
                            + "nome_cliente,"
                            + "endereco_cliente,"
                            + "cidade_cliente,"
                            + "uf_cliente,"
                            + "tel_cliente,"
                            + "tp_equipamento,"
                            + "num_serie_equipamento,"
                            + "solicitante,"
                            + "defeito,"
                            + "tecnico,"
                            + "dt_encerra_chamado,"
                            + "observacao,"
                            + "status_os)"
                            + " VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
    
    //SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    
    ps = con.prepareStatement(sql);
    
    ps.setString(1, servico.getDt_chamado());
    ps.setString(2, servico.getNome_cliente());
    ps.setString(3, servico.getEndereco_cliente());
    ps.setString(4, servico.getCidade_cliente());
    ps.setString(5, servico.getUf_cliente());
    ps.setString(6, servico.getTel_cliente());
    ps.setString(7, servico.getTp_equipamento());
    ps.setString(8, servico.getNum_serie_equipamento());
    ps.setString(9, servico.getSolicitante());
    ps.setString(10, servico.getDefeito());
    ps.setString(11, servico.getTecnico());
    ps.setString(12, servico.getDt_encerra_chamado());
    ps.setString(13, servico.getObservacao());
    ps.setString(14, servico.getStatus_os());
    
    ps.execute();
    CloseDatabase();
}

public void atualizar_OS (OS servico) throws Exception
{
OpenDatabase();

    sql = "UPDATE tbl_os SET dt_chamado,"
                            + "nome_cliente"
                            + "endereco_cliente,"
                            + "cidade_cliente,"
                            + "uf_cliente,"
                            + "tel_cliente,"
                            + "tp_equipamento,"
                            + "num_serie_equipamento,"
                            + "solicitante,"
                            + "defeito,"
                            + "tecnico,"
                            + "dt_encerra_chamado,"
                            + "observacao,"
                            + "status_os"
                            + " WHERE id=?";
    
    ps = con.prepareStatement(sql);
    
    ps.setString(1, servico.getDt_chamado());
    ps.setString(2, servico.getNome_cliente());
    ps.setString(3, servico.getEndereco_cliente());
    ps.setString(4, servico.getCidade_cliente());
    ps.setString(5, servico.getUf_cliente());
    ps.setString(6, servico.getTel_cliente());
    ps.setString(7, servico.getTp_equipamento());
    ps.setString(8, servico.getNum_serie_equipamento());
    ps.setString(9, servico.getSolicitante());
    ps.setString(10, servico.getDefeito());
    ps.setString(11, servico.getTecnico());
    ps.setString(12, servico.getDt_encerra_chamado());
    ps.setString(13, servico.getObservacao());
    ps.setString(14, servico.getStatus_os());
    ps.setInt(15, servico.getId());
    
    ps.execute();
    CloseDatabase();
}

}[/code][code]
////////////////////////////////////////////////////////////////////////////
// METODOS PARA ORDEM DE SERVIÇO //
////////////////////////////////////////////////////////////////////////////
public String getListOS()
{
try
{
osDAO dao = new osDAO();
return html.getListOS(dao.listaServico());
}
catch (Exception ex)
{
return "Exceção: " + ex.getMessage();
}
}

public String salvarOS(HttpServletRequest req) 
{
    try 
    {
        //recuperando os valores passado como parametro pelo formulario
        String dt_chamado            = req.getParameter("dt_chamado");
        String nome_cliente          = req.getParameter("nome_cliente");
        String endereco_cliente      = req.getParameter("endereco_cliente");
        String cidade_cliente        = req.getParameter("cidade_cliente");
        String uf_cliente            = req.getParameter("uf_cliente");
        String tel_cliente           = req.getParameter("tel_cliente");
        String tp_equipamento        = req.getParameter("tp_equipamento");
        String num_serie_equipamento = req.getParameter("num_serie_equipamento");
        String solicitante           = req.getParameter("solicitante");
        String defeito               = req.getParameter("defeito");
        String tecnico               = req.getParameter("tecnico");
        String dt_encerra_chamado    = req.getParameter("dt_encerra_chamado");
        String observacao            = req.getParameter("observacao");
        String status_os             = req.getParameter("status_os");
        
        //SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

        //montando o objeto
        OS servico = new OS();
        
        servico.setDt_chamado(dt_chamado);
        servico.setNome_cliente(nome_cliente);
        servico.setEndereco_cliente(endereco_cliente);
        servico.setCidade_cliente(cidade_cliente);
        servico.setUf_cliente(uf_cliente);
        servico.setTel_cliente(tel_cliente);
        servico.setTp_equipamento(tp_equipamento);
        servico.setNum_serie_equipamento(num_serie_equipamento);
        servico.setSolicitante(solicitante);
        servico.setDefeito(defeito);
        servico.setTecnico(tecnico);
        servico.setDt_encerra_chamado(dt_encerra_chamado);
        servico.setObservacao(observacao);
        servico.setStatus_os(status_os);

        //persitindo dados no mysql
        osDAO dao = new osDAO();
        dao.cadastrar_os(servico);

        return "<div align='center'> Ordem de Serviço cadastrado com sucesso!</div>";
    } 
    catch (Exception ex) 
    {
        return "Exceção " + ex.getMessage();
    }
}
public String getPreencherFormOS(HttpServletRequest req) 
{
    try 
    {
        String id = req.getParameter("id");

        osDAO dao = new osDAO();
        return html.getFormAtualizarOS(dao.buscaporId(Integer.parseInt(id)));
    }
    catch (Exception ex) 
    {
        return "Exceção " + ex.getMessage();
    }
}
//atualizar OS
public String atualizarOS(HttpServletRequest req) 
{
    try 
    {
        //recuperando os valores passados com parametros pelo formulario
        String id                    = req.getParameter("id");
        String dt_chamado            = req.getParameter("dt_chamado");
        String nome_cliente          = req.getParameter("nome_cliente");
        String endereco_cliente      = req.getParameter("endereco_cliente");
        String cidade_cliente        = req.getParameter("cidade_cliente");
        String uf_cliente            = req.getParameter("uf_cliente");
        String tel_cliente           = req.getParameter("tel_cliente");
        String tp_equipamento        = req.getParameter("tp_equipamento");
        String num_serie_equipamento = req.getParameter("num_serie_equipamento");
        String solicitante           = req.getParameter("solicitante");
        String defeito               = req.getParameter("defeito");
        String tecnico               = req.getParameter("tecnico");
        String dt_encerra_chamado    = req.getParameter("dt_encerra_chamado");
        String observacao            = req.getParameter("observacao");
        String status_os             = req.getParameter("status_os");

        //testa se os valores estão corretos
        System.out.println("id"
                            + "dt_chamado"
                            + "nome_cliente"
                            + "endereco_cliente"
                            + "cidade_cliente"
                            + "uf_cliente"
                            + "tel_cliente"
                            + "tp_equipamento"
                            + "num_serie_equipamento"
                            + "solicitante"
                            + "defeito"
                            + "tecnico"
                            + "dt_encerra_chamado"
                            + "observacao"
                            + "status_os");
        
        //SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        
        //montando o objeto
        OS servico = new OS();
        
        servico.setDt_chamado(dt_chamado);//(new java.sql.Date(sdf.parse(dt_chamado).getTime()));
        servico.setNome_cliente(nome_cliente);
        servico.setEndereco_cliente(endereco_cliente);
        servico.setCidade_cliente(cidade_cliente);
        servico.setUf_cliente(uf_cliente);
        servico.setTel_cliente(tel_cliente);
        servico.setTp_equipamento(tp_equipamento);
        servico.setNum_serie_equipamento(num_serie_equipamento);
        servico.setSolicitante(solicitante);
        servico.setDefeito(defeito);
        servico.setTecnico(tecnico);
        servico.setDt_encerra_chamado(dt_encerra_chamado);
        servico.setObservacao(observacao);
        servico.setStatus_os(status_os);

        //persitindo dados no mysql
        osDAO dao = new osDAO();
        dao.atualizar_OS(servico);

        System.out.println("Atualizado");
        return "<div align='center'> Ordem Serviço atualizada com sucesso!</div>";
    }
    catch (Exception ex) 
    {
        return "Exceção " + ex.getMessage();
    }
}[/code]

Se alguém puder ajudar-me, agradeço.
Gusmborges