[英]“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.