>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Problema com comando sql Insert utilizando variaveis


Ola pessoal,

Eu vi no curso uma forma de inserir dados utilizando o put();, mas eu gostaria de utilizar comandos sql.

estou fazendo da seguinte forma :
db.execSQL("Insert into usuario(id,senha)values("+codigo.toString()+",+senha.toString()+)");

codigo e senha sao variaveis do tipo String.

Obrigado



6 Respostas


Olá

Pode me mostrar o erro?

Outra coisa, essa forma pode sofrer ataques via sql injection, por isso é bom usar o put.

Se código e senha já são String, não precisa chamar o toString().




Rafael,

Não há erro, porem nao encontra os registros inseridos ...

estou fazendo da seguinte forma para tentar selecionar os registrros inseridos:
try{
db = openOrCreateDatabase("android.db", Context.MODE_PRIVATE, null);
cursor = db.rawQuery("Select id,senha from usuario where(id = " cod.toString() ")and(senha = '" sen.toString() "') limit 1", null);
}catch(Exception erro){
db.close();
mensagem.msgSimples("Erro !", "Ocorreu um erro ao tentar localizar usuario . ERRO:" erro);
return;
}
db.close();

int nRegs = cursor.getCount();
if(nRegs == 0){

// >>> esta entrando aqui

}




Opa

E tem esses registros?

Me mande os valores que tem no cod e senha.

E os registros do teu banco.




Blz Rafael ...

Cara ... os valores sao os mesmos, eu insiro codigo = 1 e sennha = 1 ... somente para testar.
Mas nao sei se nao esta inserirndo ou nao esta realizando a consulta sql.

Pq quando tento logar o utilizando o codigo de usuairo = 1 e a senha = 1 nao esta sendo localizado.




Diego,

Mas acesse teu banco SQLite, via ADB SHell, tem esses dados lá?




Opa...

Rafael, agora deu certo ...

O problema é que eu estava fechando a conexão com o bd antes de pegar o número de registros existente no cursor, com isso o valor do cursor estava como 0(zero).

passei a fechar a conexão após pegar o valor em uma variavel, e agora esta td ok.

Obrigado