Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Sqlite在放置数据时缺少一列_Android_Sqlite - Fatal编程技术网

Android Sqlite在放置数据时缺少一列

Android Sqlite在放置数据时缺少一列,android,sqlite,Android,Sqlite,我试图在SQLite android中复制我的数据,但我收到一条消息,表示缺少一列。下面是代码: private static final int DATABASE_VERSION = 1; // Database Name private static final String DATABASE_NAME = "Arretschoisi"; // Contacts table name private static final String TABLE_CONTACTS = "ar

我试图在SQLite android中复制我的数据,但我收到一条消息,表示缺少一列。下面是代码:

    private static final int DATABASE_VERSION = 1;

// Database Name
private static final String DATABASE_NAME = "Arretschoisi";

// Contacts table name
private static final String TABLE_CONTACTS = "arret";

// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String ID_Trajet="id_trajet";
private static final String ID_TRAJET_PUBLIC="code_publique_ligne";
private static final String DESTINATION="destination_trajet";
private static final String TIME_TO_WAIT="temps_attente";
private static final String TIME="temps_passage_prevu";


public DatabaseStationChoice(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {

    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + " ("
            + KEY_ID + " INTEGER PRIMARY KEY," +
            ID_Trajet + " TEXT, "+ 
            ID_TRAJET_PUBLIC + " TEXT, " + 
            DESTINATION + " TEXT, " +
            TIME_TO_WAIT + " TEXT, " +
            TIME + " TEXT" +");";
    db.execSQL(CREATE_CONTACTS_TABLE);
}

// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Drop older table if existed
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
    // Create tables again
    onCreate(db);
}

/**
 * All CRUD(Create, Read, Update, Delete) Operations
 */
//delete all rows in table
public void deleteAll()
{
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(TABLE_CONTACTS,null,null);
    //   db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
    //   db.execSQL("TRUNCATE TABLE " + TABLE_CONTACTS);
    db.close();
}

// Adding new contact
void addHorraire(Horraire horaire) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(ID_Trajet, horaire.getID_SQL()); // horaire Id_sql
    values.put(ID_TRAJET_PUBLIC, horaire.getadr_id_pub()); // horaire num public
    values.put(DESTINATION, horaire.getadr_des()); // horaire destination
    values.put(TIME_TO_WAIT, horaire.getadr_2wait()); // horaire d attente
    values.put(TIME, horaire.getadr_time()); // horaire d'arriver

    // Inserting Row
    db.insert(TABLE_CONTACTS, null, values);
    db.close(); // Closing database connection
}
以及来自logcat的错误:

(1) table arret has no column named destination_trajet
Error inserting code_publique_ligne=L-8 destination_trajet=Fin temps_passage_prevu=289 temps_attente=16:20 id_trajet=8
android.database.sqlite.SQLiteException: table arret has no column named destination_trajet (code 1): , while compiling: INSERT INTO arret(code_publique_ligne,destination_trajet,temps_passage_prevu,temps_attente,id_trajet) VALUES (?,?,?,?,?)
android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:886)
    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:497)
    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
    at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
    at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1467)
    at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1339)
    at com.example.citybus.DatabaseStationChoice.addHorraire(DatabaseStationChoice.java:84)
    at com.example.citybus.Proximite$sendstationfortime.onPostExecute(Proximite.java:174)
    at com.example.citybus.Proximite$sendstationfortime.onPostExecute(Proximite.java:1)
    at android.os.AsyncTask.finish(AsyncTask.java:631)
    at android.os.AsyncTask.access$600(AsyncTask.java:177)
(1)表arret没有名为destination\u trajet的列
插入代码时出错\u publique\u ligne=L-8目的地\u trajet=Fin temps\u passage\u prevu=289 temps\u attente=16:20 id\u trajet=8
android.database.sqlite.SQLiteException:表arret没有名为destination_trajet(代码1)的列,编译时:插入arret(代码publique、destination_trajet、temps_passage_prevu、temps_attentite、id_trajet)值(?,,,?)
android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法)
位于android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:886)
位于android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:497)
位于android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
位于android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31)
位于android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1467)
位于android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1339)
位于com.example.citybus.DatabaseStationChoice.addHorraire(DatabaseStationChoice.java:84)
位于com.example.citybus.Proximite$sendstationfortime.onPostExecute(Proximite.java:174)
位于com.example.citybus.Proximite$sendstationfortime.onPostExecute(Proximite.java:1)
位于android.os.AsyncTask.finish(AsyncTask.java:631)
在android.os.AsyncTask.access$600(AsyncTask.java:177)
因此,我的数据库的体系结构如下:



如果您已经应用了新的更改,请感谢:

  • 将数据库_VERSION增加1以强制执行onUpgrade()方法
  • 或者从设备中删除旧的数据库文件

您的数据库没有任何错误。发布完整的日志。你能把你的
arret
表结构放在这里吗?谢谢,已经完成了。但是你能告诉我这个版本如何解决问题吗?如果你的应用程序代码中增加了数据库版本,你可以调用welcome-onUpgrade()。此方法允许您更新现有数据库架构