Bom dia … estou com alguns probleminhas …
eu criei uma agenda … e não cosigo alterar e nem excluir … alguem pode MOSTRAR onde está o erro?
obrigada
[code]import java.sql.*;
public class AgendaDB {
private String nome ;
private String endereco;
private String cidade ;
private String telefone ;
private String result_busca ;
private String result_inserir ;
private String result_alterar ;
private String result_excluir ;
public static final String BUSCA_INVALIDA = "failure";
public static final String BUSCA_VALIDA = "success";
public static final String SUCESSO_INSERCAO = "success";
public static final String FALHA_INSERCAO = "failure";
public static final String SUCESSO_ALTERACAO = "success";
public static final String FALHA_ALTERACAO = "failure";
public static final String SUCESSO_EXCLUSAO = "success";
public static final String FALHA_EXCLUSAO = "failure";
static Connection con = null;
static Statement stm = null;
static ResultSet rs;
public AgendaDB() {
if (con==null) {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con =
DriverManager.getConnection("jdbc:microsoft:sqlserver://10.1.7.4:1433;DataBaseName=TESTE_JESSICA;","sa","sa123456");
} catch (SQLException e) {
System.err.println ("Erro: "+e);
e.printStackTrace();
con = null;
} catch (ClassNotFoundException e) {
System.out.println("ClassNotFound...");
e.printStackTrace();
}
}
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String inserir()
{
String result_inserir = FALHA_INSERCAO;
try {
stm = con.createStatement();
stm.execute("INSERT INTO Pessoa(nome,endereco,cidade,telefone) VALUES ('" + nome + "','"+
endereco + "','" + cidade + "','"+ telefone + "')");
stm.close();
result_inserir = SUCESSO_INSERCAO;
} catch (SQLException e) {
System.err.println ("Erro: "+e);
result_inserir = FALHA_INSERCAO;
}
return result_inserir;
}
public String buscar() {
String result_busca = BUSCA_INVALIDA;
try {
stm = con.createStatement();
rs = stm.executeQuery("SELECT * FROM pessoa WHERE nome = '" + nome + "'");
if (rs.next()) {
nome = rs.getString("nome");
telefone = rs.getString("telefone");
endereco = rs.getString("endereco");
cidade = rs.getString("cidade");
result_busca = BUSCA_VALIDA;
}
else
result_busca = BUSCA_INVALIDA;
rs.close();
stm.close();
} catch (SQLException e) {
System.err.println ("Erro: "+e);
}
return result_busca;
}
public String Alterar() {
String result_alterar = FALHA_ALTERACAO;
try {
stm = con.createStatement();
rs = stm.executeQuery("UPDATE pessoa SET nome = '" + nome + "'");
if (rs.next()) {
telefone = rs.getString("telefone");
endereco = rs.getString("endereço");
cidade = rs.getString("cidade");
result_alterar = SUCESSO_ALTERACAO;
}
else
result_alterar = FALHA_ALTERACAO;
rs.close();
stm.close();
} catch (SQLException e) {
System.err.println ("Erro: "+e);
}
return result_alterar;
}
public String Excluir() {
String result_excluir = FALHA_EXCLUSAO;
try {
stm = con.createStatement();
rs = stm.executeQuery("DELETE * FROM pessoa WHERE nome = '" + nome + "'");
if (rs.next()) {
telefone = rs.getString("telefone");
endereco = rs.getString("endereço");
cidade = rs.getString("cidade");
result_excluir = SUCESSO_EXCLUSAO;
}
else
result_excluir = FALHA_EXCLUSAO;
rs.close();
stm.close();
} catch (SQLException e) {
System.err.println ("Erro: "+e);
}
return result_excluir;
}
public static void main (String args[]){
//instanciar classe principal, onde a conexao é inicializada
AgendaDB agenda = new AgendaDB();
//atribuir valores às variáveis
agenda.nome = "Jessica";
agenda.endereco = "End. 1234";
agenda.cidade = "OSASCO - AFFF";
agenda.telefone = "23456778";
//inserir valores no BD
agenda.inserir();
//remover os valores das variaveis
agenda.endereco = null;
agenda.cidade = null;
agenda.telefone = null;
//buscar os valores do BD
agenda.buscar();
//imprimir valores na tela
System.out.println(agenda.nome);
System.out.println(agenda.endereco);
System.out.println(agenda.cidade);
System.out.println(agenda.telefone);
//alterar os valores
agenda.Alterar();
agenda.nome = "";
agenda.endereco = "End.14646461";
agenda.cidade = "OSASCO - kkkkkk";
agenda.telefone = "36363636";
//excluir os valores
agenda.Excluir();
agenda.endereco = null;
agenda.cidade = null;
agenda.telefone = null;
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
[/code]
Oi
Utilize o PreparedStatement
Para fazer suas consultas 
Posta o código do erro aí se estiver dando algum
Para testar melhor, depois de chamar o método alterar, no seu main, chame novamente o método buscar e imprima na tela
os valores dos atributos ( igual voce fez depois que inseriu )
então o erro é este …
Erro: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Incorrect syntax near ‘*’.
Erro: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]No ResultSet set was produced.
eu não cosnigo consigo alterar e nem excluir as variaveis eu acho que o meu código no metodo está errado …e tbm acho que o metodo alterar no banco de dados está errado …
Olá jessica!
Como está sua tabela no banco? Qual é a chave primária?
eu coloquei o nome …como chave primaria
Veja isso:
DELETE * FROM pessoa WHERE
A sintaxe correta do comando é DELETE FROM (NOME_TABLE), não tem “*” como no Select.
Exatamente o que o erro diz:
Erro: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Incorrect syntax near ‘*’.
e o update acho que está errado tbm … alguem pode me dizer qual é a sintaxe correta?
pq eu não consigo atualizar no banco de dados … os valores
eu ficaria grata se alguem respondesse =)
Jéssica… você já pensou em procurar no Google ???
Uma pesquisa por “sintaxe UPDATE SQL” no oráculo você teria sua resposta…
Dá pra perceber em alguns POSTs seus esses traços de algo que você está precisando trabalhar.
Tenho a imprensão que já lhe passei esse link, mas peço novamente, leia-o por favor, para o seu bem.
http://www.istf.com.br/perguntas
Abs [] e bons estudos.
obrigado … ja tentei procurar no google ja mudei os códigos e continua com erro mas obrigado pela anteção
Pois então coloque aqui onde você procurou e o código que você mexeu, porque senão fica difícil poder lhe ajudar a achar o caminho sozinha…
Só não dá pra fazer por você… Post aí o seu novo código do UPDATE.
Mais uma vez eu lhe peço, leia o link que lhe passei, será útil nessa jornada.
Abs []
relaxa não estou pedindo pra ninguem fazer por mim … se eu tivesse pedido para alguem criar uma agenda que ligue o banco de dados ai sim seria muito como agora eu fiz tudo só que está dando erro eu só pedi que mostrassem onde está e como seria o código correto como muita gente ja fez …
public String Alterar() {
String result_Alterar = FALHA_ALTERACAO;
try {
stm = con.createStatement();
rs = stm.executeQuery("update pessoa " + "set endereco = " + endereco + ", " + "cidade = " + cidade + "," +
"telefone = " + telefone + " " +
"where nome = \"" + nome + "\" ");
if (rs.next()) {
nome = rs.getString("nome");
endereco = rs.getString("endereço");
cidade = rs.getString("cidade");
telefone = rs.getString("telefone");
result_Alterar = SUCESSO_ALTERACAO;
}
else
result_Alterar = FALHA_ALTERACAO;
rs.close();
stm.close();
} catch (SQLException e) {
System.err.println ("Erro: "+e);
}
return result_Alterar;
}
eu coloquei esse código agora só que está dando esse erro…
Erro: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Incorrect syntax near the keyword ‘End’.
Oi!
Ta utilizando alguma IDE? Qual? (sim, por mais que seja estranho, isso pode ser útil para te ajudar)
Tenta “pegar” a string que seu programa está mandando para o bd e tente roda-la diretamente no banco.
Novamente te aconselho a utilizar o PreparedStatement, daqui a pouco posto um código de exemplo.
O erro aqui é que você não colocou Aspas na consulta envolvendo o endereço, como você fez no nome. Isso deve ser feito com cada campo seu que for do tipo String 
Veja bem, não digo fazer por você o trabalho todo, mas uma boa pesquisa também é realizar o trabalho dos outros, fazendo uma pesquisa, reví (faz tempo que não trabalho com JDBC puro) que você está executando seu Update de forma errada com o método errado e ainda nem há a necessidade de retornar nada para nenhum ResultSet.
http://www.jdbc-tutorial.com/jdbc-update-table.htm
Abs [] e bons estudos.
ahh tá endetediii obrigado … sim sim coloca o exemplo … é que eu estou aprendendo java na marra sabe … estou lendo um livro java como programar e meu chefe que mandou fazer um agenda …
mas muito obrigadi viu 
Veja como fazer utilizando PreparedStatement, como eu havia dito.
Além de ser mais seguro e “correto” é muito mais limpo e legível…
PreparedStatement ps = con.prepareStatement("UPDATE pessoa SET endereco = ? ," +
" cidade = ? ," +
" telefone = ?" +
" WHERE nome = ?");
ps.setString(1, "Novo Endereco");
ps.setString(2, "Nova cidade");
ps.setString(3, "Novo Telefone");
ps.setString(4, "Nome da pessoa");
int resultado = ps.executeUpdate();
eu agradeceria se você mandasse o exemplo =) ( drigo.andelo)
obrigada viu!!!
Então o exemplo é esse aí de cima xD
Tipo assim: métodos de DML ( insert/update/delete ) não retornam nada (alias, retornam o número de linhas que foram alteradas) então quando você vai execurar essas operações deve usar um método adequado. ( no caso, executeUpdate() )
Leia também a documentaçao do PreparedStatement e da classe Statement
(Só pesquisar no google “nomeDaClasse java 6” que é quase sempre o 1° resultado) Se vc não souber inglês, o google tradutor é muito bom ( mas cuidado pq ele pode traduzir o nome dos métodos tbm
)
Estude também os comandos SQL e ODBC…
Explicando aquele exemplo… os pontos de interrogação são substituídos pelos métodos setTipo(int, Object) na ordem que aparecem, tipo assim, o 1° “?” será substituído pelo setTipo(1, Objeto), e tem esse método para quase todos os tipos, setInt, setString, setDate etc…
Espero ter ajudado
[]'s
só uma dica… nunca usa o nome como chave primária pois podem existir pessoas com nomes iguais… usem um código único de preferência…