Java DB SQLite中的多个表
我使用的是一个表,所有程序都正常,但现在我必须向数据库中添加另一个表,按照逻辑,代码如下:Java DB SQLite中的多个表,java,android,database,sqlite,create-table,Java,Android,Database,Sqlite,Create Table,我使用的是一个表,所有程序都正常,但现在我必须向数据库中添加另一个表,按照逻辑,代码如下: package net.ShamanOperativo; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQL
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);
}
}
我的桌子没问题,这是我一直用的。。但我不能使用桌面动画,我在这里使用我的桌面:
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();
}
usuariossqliteheloper usdbh=
新的UsuariosSQLiteHelper(此“DbIncidents”,null,1);
SQLiteDatabase db=usdbh.getWritableDatabase()//曼陀罗基地酒店
如果(db!=null)
{
//db.execSQL(“从移动文件中删除”);
对于(inti=0;iNo),处理多个表不需要做任何额外的事情
我认为之所以没有创建表,是因为既没有调用onCreate()
(因为您的数据库已经存在)也没有调用onUpdate()
(您从未增加传递给usuariossqliteheloper
,对吧?)的数据库版本