gpt4 book ai didi

java - 数据库 SQLite 中的多个表

转载 作者:搜寻专家 更新时间:2023-11-01 09:12:00 26 4
gpt4 key购买 nike

我正在使用一个表,我的所有程序都正常,但现在我必须向我的数据库添加另一个表,按照逻辑,这是代码:

package net.ShamanOperativo;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class UsuariosSQLiteHelper extends SQLiteOpenHelper {

//Sentencia SQL para crear la tabla de Incidentes
String sqlCreate = "CREATE TABLE Incidentes ( idInterno INTEGER PRIMARY KEY , codReg TEXT, codGr TEXT, entidad TEXT, codInc TEXT, loc TEXT, dom TEXT, sint TEXT, movil TEXT, sexo TEXT, edad INTEGER, estado TEXT, latitud DOUBLE, longitud DOUBLE,colorLoc TEXT, colorGr TEXT )";
String sqlCreate2 = "CREATE TABLE Moviles (idInterno INTEGER PRIMARY KEY, numMovil TEXT, colMovil TEXT, estado TEXT, localidad TEXT, cantServ INTEGER)";
String sqlCreateIndex = "CREATE UNIQUE INDEX idxIdInterno ON Incidentes(idInterno)";

public UsuariosSQLiteHelper(Context contexto, String nombre,
CursorFactory factory, int version) {
super(contexto, nombre, factory, version);


}

@Override
public void onCreate(SQLiteDatabase db) {
//Se ejecuta la sentencia SQL de creación de la tabla
db.execSQL(sqlCreate);
db.execSQL(sqlCreateIndex);
db.execSQL(sqlCreate2);




}

@Override
public void onUpgrade(SQLiteDatabase db, int versionAnterior, int versionNueva) {

//Se elimina la versión anterior de la tabla
db.execSQL("DROP TABLE IF EXISTS Incidentes");
db.execSQL("DROP TABLE IF EXISTS Moviles");


//Se crea la nueva versión de la tabla
db.execSQL(sqlCreate);
db.execSQL(sqlCreate2);

}
}

我的表 Incidentes 没问题,它是我一直使用的..但我不能使用表 Moviles,我在这里使用我的表:

 UsuariosSQLiteHelper usdbh =
new UsuariosSQLiteHelper(this, "DBIncidentes", null, 1);

SQLiteDatabase db = usdbh.getWritableDatabase(); //Abro base de datos para escritura

if(db != null)
{

//db.execSQL("DELETE from Moviles");
for (int i=0; i<= (vecTotal.length) -1; i++) {



String reg = vecTotal[i].toString();
String [] inc = TextUtils.split(reg, "\\^");




String numMovil = inc[0];
String colMovil = inc[1];
String estado = inc[2];
String localidad = inc[3];
String strCantServ = inc[4];

Integer cantServ = Integer.parseInt(strCantServ);



try{

//Insertamos los datos en la tabla Incidentes
db.execSQL("INSERT INTO Moviles ( idInterno, numMovil, colMovil, estado, localidad, cantServ) " +
"VALUES ("+(i+1)+", '" + numMovil +"', '" + colMovil +"' , '" + estado +"', '" + localidad +"', " +cantServ +" )");



}

catch (Exception e)

{
e.getMessage();


}

我还需要做其他事情来处理两个或更多表吗?它不是同一个适配器,只是指我想查询或添加信息的数据库的哪个表?

当程序想要将信息添加到 Moviles 时,logcat 说它不能,因为 Moviles 不存在。

最佳答案

不,处理超过 1 个表时您不需要做任何额外的事情。

我认为您的表未创建,因为 onCreate()(因为您的数据库已经存在)和 onUpdate()(您从未增加传递给的数据库版本UsuariosSQLiteHelper,对吗?)被调用。

关于java - 数据库 SQLite 中的多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7681909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com