Java 将数据插入sqlite数据库表时出现未知错误
这就是错误: 我的意思不仅仅是所选行上的错误,而是单击按钮时发生的情况 LoginOpenHelper的GetIduSario方法代码如下所示:Java 将数据插入sqlite数据库表时出现未知错误,java,android,sqlite,logcat,Java,Android,Sqlite,Logcat,这就是错误: 我的意思不仅仅是所选行上的错误,而是单击按钮时发生的情况 LoginOpenHelper的GetIduSario方法代码如下所示: public String getIDUsuario(String usuario, String senha){ SQLiteDatabase db = this.getWritableDatabase(); String id = "id_usuario"; String[] columns =
public String getIDUsuario(String usuario, String senha){
SQLiteDatabase db = this.getWritableDatabase();
String id = "id_usuario";
String[] columns = {id};
String[] selectionArgs ={usuario, senha};
Cursor cursor = db.query("usuarios", columns, "nome_usuario=? AND senha=?", selectionArgs, null, null, null);
StringBuffer buffer = new StringBuffer();
while(cursor.moveToNext()){
int index0 = cursor.getColumnIndex(id);
int idUsuario = cursor.getInt(index0);
buffer.append(idUsuario);
}
return buffer.toString();
}
第91行是这样的:
Cursor cursor = db.query("usuarios", columns, "nome_usuario=? AND senha=?", selectionArgs, null, null, null);
这是MockActivityTransacao类中地籍Transacao方法的代码:
public void cadastrarTransacao(View view) {
TransacaoDTO transacaoDTO = new TransacaoDTO();
LoginDTO loginDTO = new LoginDTO();
//int idUsuario = Integer.parseInt(activity.getIDUsuario(loginOpenHelper));
transacaoDTO.setDesc(edtDescricao.getText().toString());
transacaoDTO.setData(edtData.getText().toString());
transacaoDTO.setValor(Long.parseLong(edtValor.getText().toString()));
transacaoDTO.setIdUsuario(Integer.parseInt(loginOpenHelper.getIDUsuario(loginDTO.getUsuario(), loginDTO.getSenha())));
ValidacaoMock resultado = mockBO.cadastrarOperacao(transacaoDTO);
MensagemUtil.addMsg(this, resultado.getMensagem());
Intent i = new Intent(this, MockListActivity.class);
startActivity(i);
finish();
}
第53行是这一行:
transacaoDTO.setIdUsuario(Integer.parseInt(loginOpenHelper.getIDUsuario(loginDTO.getUsuario(), loginDTO.getSenha())));
我认为问题在于代码没有从LoginDTO检索值,它有以下代码:
public class LoginDTO implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1111108194849414002L;
private String usuario;
private String senha;
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
我想不出解决方法。“绑定值”指向查询的selectionArgs。如果SelectionAgs值中的任何一个为空,则可能会出现此错误。在logcat中打印并检查
String[] selectionArgs ={usuario, senha};
任何一个usuario或senha都是空的。@MohammedAli它就在这里的链接上@MikeOliveira您应该在问题本身中添加实际错误信息,而不是(仅仅)作为链接。查看答案,检查任何SelectionArg是否为空。