Java 将数据插入sqlite数据库表时出现未知错误

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 =

这就是错误:

我的意思不仅仅是所选行上的错误,而是单击按钮时发生的情况

LoginOpenHelper的GetIduSario方法代码如下所示:

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是否为空。