簡體   English   中英

在 SQLite Android 中發現“沒有此類表”錯誤

[英]“No Such Table” Error found in SQLite Android

我正在嘗試為我的技術課程開發一個程序。 但是,我對 android 有問題嗎,我不知道如何解決。 如果有人幫助我,我將不勝感激。

我的主頁片段活動:

@Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        carregaLista();
        registerForContextMenu(listaPedidos);
    }

    private void carregaLista() {
        PedidoDAO dao = new PedidoDAO(getContext());
        List<PedidoDTO> pedidos = dao.buscaPedidos();
        dao.close();

        listaPedidos = (ListView) getView().findViewById(R.id.lista_pedidos);
        ArrayAdapter<PedidoDTO> adapter = new ArrayAdapter<PedidoDTO>(getContext(),  android.R.layout.simple_list_item_1, pedidos);
        listaPedidos.setAdapter(adapter);

        TextView view = (TextView) getView().findViewById(R.id.textview_nao_ha_pedidos);
        String resultadoo = dao.haPedidos();
        if (resultadoo == null){
            view.setText("Não há solicitações cadastradas");
        }
    }
PedidoDAO class:

@Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE Pedido(" +
                "id_pedido INTEGER PRIMARY KEY," +
                "nome_solicitante TEXT NOT NULL," +
                "email_solicitante TEXT NOT NULL," +
                "nome_paciente TEXT NOT NULL," +
                "tipo_sanguineo TEXT NOT NULL," +
                "local_internacao TEXT NOT NULL," +
                "estado TEXT NOT NULL," +
                "cidade TEXT NOT NULL," +
                "motivo TEXT NOT NULL," +
                "outras_info TEXT);";
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }

public List<PedidoDTO> buscaPedidos() {
        String sql = "SELECT * FROM Pedido;";
        SQLiteDatabase db = getReadableDatabase();
        Cursor c = db.rawQuery(sql, null);

        List<PedidoDTO> pedidos = new ArrayList<PedidoDTO>();
        while (c.moveToNext()){
            PedidoDTO pedidoDTO = new PedidoDTO();
            pedidoDTO.setId_pedido(c.getLong(c.getColumnIndex("id_pedido")));
            pedidoDTO.setNome_solicitante(c.getString(c.getColumnIndex("nome_solicitante")));
            pedidoDTO.setEmail_solicitante(c.getString(c.getColumnIndex("email_solicitante")));
            pedidoDTO.setNome_paciente(c.getString(c.getColumnIndex("nome_paciente")));
            pedidoDTO.setOutras_info(c.getString(c.getColumnIndex("outras_info")));
            pedidoDTO.setMotivo(c.getString(c.getColumnIndex("motivo")));
            pedidoDTO.setLocal_internacao(c.getString(c.getColumnIndex("local_internacao")));
            pedidoDTO.setCidade(c.getString(c.getColumnIndex("cidade")));
            pedidoDTO.setEstado(c.getString(c.getColumnIndex("estado")));
            pedidoDTO.setTipo_sanguineo(c.getString(c.getColumnIndex("tipo_sanguineo")));

            pedidos.add(pedidoDTO);
        }
        c.close();
        return pedidos;
    }

當我嘗試登錄系統時,LogCat 顯示:

2020-07-11 13:19:00.642 2686-2686/br.com.app.hemosis E/SQLiteLog:(1)沒有這樣的表:Pedido
2020-07-11 13:19:00.650 2686-2686/br.com.app.hemosis E/AndroidRuntime: FATAL EXCEPTION: main Process: br.com.app.hemosis, PID: 2686 android.database.sqlite.SQLiteException:沒有這樣的表:Pedido (code 1 SQLITE_ERROR[1]): ,編譯時:SELECT * FROM Pedido;

OBS:我是巴西人,我的英語不太好。 很抱歉出現語法錯誤。

在 PedidoDAO Class repcae oncreate() 和 conconstructor

public PedidoDAO(Context context_)
{
     SQLiteDatabase db = getReadableDatabase();
     String sql = "CREATE TABLE Pedido(" +
            "id_pedido INTEGER PRIMARY KEY," +
            "nome_solicitante TEXT NOT NULL," +
            "email_solicitante TEXT NOT NULL," +
            "nome_paciente TEXT NOT NULL," +
            "tipo_sanguineo TEXT NOT NULL," +
            "local_internacao TEXT NOT NULL," +
            "estado TEXT NOT NULL," +
            "cidade TEXT NOT NULL," +
            "motivo TEXT NOT NULL," +
            "outras_info TEXT);";
    db.execSQL(sql);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM