首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >E/SQLiteLog:(1)重复列名: Temperatur

E/SQLiteLog:(1)重复列名: Temperatur
EN

Stack Overflow用户
提问于 2021-04-18 23:26:19
回答 2查看 45关注 0票数 1

我刚刚开始使用android studio。我在应用程序编程或其他方面也是新手。现在,我尝试构建我的第一个应用程序。我收到失败消息:"E/SQLiteLog:(1) duplicate column name: Temperatur“

在其他线程中,我找不到正确的解决方案。

我的代码:

公共类FangbuchDbHelper扩展了SQLiteOpenHelper {

代码语言:javascript
复制
public static final String DB_NAME = "fangbuch.db";
public static final int DB_Version = 1;

public static final String TABLE_KARPFEN = "Karpfen";
public static final String COLUMN_ID = "id";
public static final String COLUMN_DATUM = "Datum";
public static final String COLUMN_ZEIT = "Uhrzeit";
public static final String COLUMN_WINDRICHTUNG = "Windrichtung";
public static final String COLUMN_WINDSTAERKE = "Windstärke bft";
public static final String COLUMN_TEMPERATURA = "Temperatur außen";
public static final String COLUMN_TEMPERATURW = "Temperatur Wasser";
public static final String COLUMN_HPAGESTERN = "hPa gestern";
public static final String COLUMN_HPAHEUTE = "hPa heute";
public static final String COLUMN_HPAMORGEN = "hPa morgen";
public static final String COLUMN_MOND = "Mond";
public static final String COLUMN_GEWICHT = "Gewicht";
public static final String COLUMN_FOTO = "Foto";

public static final String TABLE_MEERFORELLE = "Meerforelle";
public static final String COLUMN_ID2 = "id2";
public static final String COLUMN_DATUM2 = "Datum2";
public static final String COLUMN_ZEIT2 = "Zeit2";
public static final String COLUMN_WASSERSTAND = "Wasserstand";
public static final String COLUMN_WINDSTAERKE2 = "Windstärke2 bft";
public static final String COLUMN_WINDRICHTUNG2 = "Windrichtung2";
public static final String COLUMN_TEMPERATURW2 = "Wassertemperatur";
public static final String COLUMN_STROEMUNG = "Strömung";
public static final String COLUMN_FOTO2 = "Foto2";

public static final String SQL_CREATE =
        "create table " + TABLE_KARPFEN + "(" +
                COLUMN_ID + " integer primary key , " +
                COLUMN_DATUM + " text not null, " +
                COLUMN_ZEIT + " text, " +
                COLUMN_WINDRICHTUNG + " text, " +
                COLUMN_WINDSTAERKE + " integer, " +
                COLUMN_TEMPERATURA + " integer, " +
                COLUMN_TEMPERATURW + " integer not null, " +
                COLUMN_HPAGESTERN + " integer, " +
                COLUMN_HPAHEUTE + " integer, " +
                COLUMN_HPAMORGEN + " integer, " +
                COLUMN_MOND + " text, " +
                COLUMN_GEWICHT + " REAL, " +
                COLUMN_FOTO + " text); ";
public static final String SQL_CREATE2 =
        "create table " + TABLE_MEERFORELLE + "(" +
                COLUMN_ID2 + " integer, " +
                COLUMN_DATUM2 + " text not null, " +
                COLUMN_ZEIT2 + " text, " +
                COLUMN_WASSERSTAND + " text, " +
                COLUMN_WINDSTAERKE2 + "integer, " +
                COLUMN_WINDRICHTUNG2 + " text, " +
                COLUMN_TEMPERATURW2 + " integer, " +
                COLUMN_STROEMUNG + " text, " +
                COLUMN_FOTO2 + " text); ";


public FangbuchDbHelper(@Nullable Context context) {
    super(context, DB_NAME, null, DB_Version);
}

@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
    sqLiteDatabase.execSQL(SQL_CREATE);
    sqLiteDatabase.execSQL(SQL_CREATE2);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    Log.w(FangbuchDbHelper.class.getName(), "Upgrading database from version " + oldVersion + "to "
            + newVersion + ", which will destroy all old data");
    db.execSQL("DROP TABLE IF EXISTS " + DB_NAME);
    onCreate(db);
}

}

一开始,我有重复的列名。但现在我已经改变了这一点。但我还是收到了这条消息。

我的错误是什么?有人能帮我吗?谢谢

关于Ulf

EN

回答 2

Stack Overflow用户

发布于 2021-04-19 03:27:54

我不是SQL(ite)专家,但是值得注意的是,您的列名Temperatur außenTemperatur Wasser包含一个空格,并且在create table语句中插入时没有加引号,这可能会导致错误。根据的说法,在SQLite中有三到四种引用标识符的方法-您可能希望在COLUMN_TEMPERATURACOLUMN_TEMPERATURW的定义中选择一种。

票数 0
EN

Stack Overflow用户

发布于 2021-04-21 20:29:56

也许这些活动可以有所帮助:

代码语言:javascript
复制
public class DbEntry {
//Karpfen Spalten Variablen
private long id;
private String Datum;
private String Zeit;
private String Windrichtung;
private int Windstaerke;
private int TemperaturA;
private int TemperaturW;
private int hPaGestern;
private int hPaHeute;
private int hPaMorgen;
private String Mond;
private float Gewicht;

//Meerforellen Spalten Variablen
private long id2;
private String Datum2;
private String Zeit2;
private String Wasserstand;
private int Windstaerke2;
private String Windrichtung2;
private int TemperaturW2;
private String Stroemung;

//get und set für Karpfentabelle
public long getId() {
    return id;
}
public void setId (long id){
    this.id = id;
}

public String getDatum() {
    return Datum;
}
public void setDatum(String string) {
    this.Datum = Datum;
}

public String getZeit() {
    return Zeit;
}
public void setZeit(String string) {
    this.Zeit = Zeit;
}

public String getWindrichtung() {
    return Windrichtung;
}
public void setWindrichtung(String string) {
    this.Windrichtung =  Windrichtung;
}

public int getWindstaerke() {
    return Windstaerke;
}
public void setWindstaerke(int anInt) {
    this.Windstaerke = Windstaerke;
}

public int getTemperaturA() {
    return TemperaturA;
}
public void setTemperaturA(int anInt) {
    this.TemperaturA = TemperaturA;
}

public int getTemperaturW() {
    return TemperaturW;
}
public void setTemperaturW(int anInt) {
    this.TemperaturW = TemperaturW;
}

public int gethPaGestern() {
    return hPaGestern;
}
public void sethPaGestern(int anInt) {
    this.hPaGestern = hPaGestern;
}

public int gethPaHeute() {
    return hPaHeute;
}
public void sethPaHeute(int anInt) {
    this.hPaHeute = hPaHeute;
}

public int gethPaMorgen() {
    return hPaMorgen;
}
public void sethPaMorgen(int anInt) {
    this.hPaMorgen = hPaMorgen;
}

public String getMond() {
    return Mond;
}
public void setMond(String string) {
    this.Mond = Mond;
}

public float getGewicht() {
    return Gewicht;
}
public void setGewicht(float aFloat) {
    this.Gewicht = Gewicht;
}

//get und set für Meerforellen Tabelle
public long getId2() {
    return id2;
}
public void setId2(long aLong) {
    this.id2 = id2;
}

public String getDatum2() {
    return Datum2;
}
public void setDatum2(String string) {
    this.Datum2 = Datum2;
}

public String getZeit2() {
    return Zeit2;
}
public void setZeit2(String string) {
    this.Zeit2 = Zeit2;
}

public String getWasserstand() {
    return Wasserstand;
}
public void setWasserstand(String string) {
    this.Wasserstand = Wasserstand;
}

public int getWindstaerke2() {
    return Windstaerke2;
}
public void setWindstaerke2(int anInt) {
    this.Windstaerke2 = Windstaerke2;
}

public String getWindrichtung2() {
    return Windrichtung2;
}
public void setWindrichtung2(String string) {
    this.Windrichtung2 = Windrichtung2;
}

public int getTemperaturW2() {
    return TemperaturW2;
}
public void setTemperaturW2(int anInt) {
    this.TemperaturW2 = TemperaturW2;
}

public String getStroemung() {
    return Stroemung;
}
public void setStroemung(String string) {
    this.Stroemung = Stroemung;
}

}

或者这个活动:

公共类DbDataSource {

代码语言:javascript
复制
private SQLiteDatabase fbDatabase;
private FangbuchDbHelper dbHelper;
private String[] allColumnsKarpfen = {"COLUMN_ID", "COLUMN_DATUM", "COLUMN_ZEIT", "COLUMN_WINDRICHTUNG", "COLUMN_WINDSTAERKE",
        "COLUMN_TEMPERATURA", "COLUMN_TEMPERATURW", "COLUMN_HPAGESTERN", "COLUMN_HPAHEUTE", "COLUMN_HPAMORGEN", "COLUMN_MOND",
        "COLUMN_GEWICHT"};
private String[] allColumnsMeerforelle = {"COLUMN_ID2", "COLUMN_DATUM2", "COLUMN_ZEIT2", "COLUMN_WASSERSTAND", "COLUMN_WINDSTAERKE2",
        "COLUMN_WINDRICHTUNG2", "COLUMN_TEMPERATURW2", "COLUMN_STROEMUNG"};

public DbDataSource(Context context) {
    dbHelper = new FangbuchDbHelper(context);
}

public void open() throws SQLException {
    fbDatabase = dbHelper.getWritableDatabase();
}

public void close() {
    dbHelper.close();
}

public DbEntry createEntryKarpfen(String Datum, String Zeit, String Windrichtung, int Windstaerke, int TemperaturA, int TemperaturW,
                                    int hPaGestern, int hPaHeute, int hPaMorgen, String Mond, float Gewicht) {
    ContentValues values = new ContentValues();
    values.put("COLUMN_DATUM", Datum);
    values.put("COLUMN_ZEIT", Zeit);
    values.put("COLUMN_WINDRICHTUNG", Windrichtung);
    values.put("COLUMN_WINDSTAERKE", Windstaerke);
    values.put("COLUMN_TEMPERATURA", TemperaturA);
    values.put("COLUMN_TEMPERATURW", TemperaturW);
    values.put("COLUMN_HPAGESTERN", hPaGestern);
    values.put("COLUMN_HPAHEUTE", hPaHeute);
    values.put("COLUMN_HPAMORGEN", hPaMorgen);
    values.put("COLUMN_MOND", Mond);
    values.put("COLUMN_GEWICHT", Gewicht);

    long insertId = fbDatabase.insert("TABLE_KARPFEN", null, values);

    Cursor cursor = fbDatabase.query("TABLE_KARPFEN", allColumnsKarpfen, "COLUMN_ID = " + insertId, null, null, null, null);
    cursor.moveToFirst();

    return cursorToDbEntryKarpfen(cursor);

}

public DbEntry createEntryMeerforelle(String Datum2, String Zeit2, String Wasserstand, int Windstaerke2, String Windrichtung2, int TemperaturW2,
                                 String Stroemung) {
    ContentValues values2 = new ContentValues();
    values2.put("COLUMN_DATUM2", Datum2);
    values2.put("COLUMN_ZEIT2", Zeit2);
    values2.put("COLUMN_WASSERSTAND", Wasserstand);
    values2.put("COLUMN_WINDSTAERKE2", Windstaerke2);
    values2.put("COLUMN_WINDRICHTUNG2", Windrichtung2);
    values2.put("COLUMN_TEMPERATURW2", TemperaturW2);
    values2.put("COLUMN_STROEMUNG", Stroemung);

    long insertId2 = fbDatabase.insert("TABLE_MEERFORELLE", null, values2);

    Cursor cursorMeerforelle = fbDatabase.query("TABLE_MEERFORELLE", allColumnsMeerforelle, "COLUMN_ID2 = " + insertId2, null, null, null, null);
    cursorMeerforelle.moveToFirst();
    return cursorToDbEntryMeerforelle(cursorMeerforelle);

}

protected List<DbEntry> getKarpfenEntries() {
    List<DbEntry> EntryKarpfenList = new ArrayList<DbEntry>();
    EntryKarpfenList = new ArrayList<DbEntry>();

    Cursor cursor = fbDatabase.query("TABLE_KARPFEN", allColumnsKarpfen, null,null, null, null, null);
    cursor.moveToFirst();

    if(cursor.getCount() == 0) return EntryKarpfenList;

    while (cursor.isAfterLast() == false) {
        DbEntry entry = cursorToDbEntryKarpfen(cursor);
        EntryKarpfenList.add(entry);
        cursor.moveToNext();
    }
    cursor.close();
    return EntryKarpfenList;
}


protected List<DbEntry> getMeerforelleEntries() {
    List<DbEntry> EntryMeerforelleList = new ArrayList<DbEntry>();
    EntryMeerforelleList = new ArrayList<DbEntry>();

    Cursor cursor = fbDatabase.query("TABLE_MEERFORELLE", allColumnsMeerforelle, null,null, null, null, null);
    cursor.moveToFirst();

    if(cursor.getCount() == 0) return EntryMeerforelleList;

    while (cursor.isAfterLast() == false) {
        DbEntry entry = cursorToDbEntryKarpfen(cursor);
        EntryMeerforelleList.add(entry);
        cursor.moveToNext();
    }
    cursor.close();
    return EntryMeerforelleList;
}


private DbEntry cursorToDbEntryKarpfen(Cursor cursor) {
    DbEntry entry = new DbEntry();
    entry.setId(cursor.getLong(0));
    entry.setDatum(cursor.getString(1));
    entry.setZeit(cursor.getString(2));
    entry.setWindrichtung(cursor.getString(3));
    entry.setWindstaerke(cursor.getInt(4));
    entry.setTemperaturA(cursor.getInt(5));
    entry.setTemperaturW(cursor.getInt(6));
    entry.sethPaGestern(cursor.getInt(7));
    entry.sethPaHeute(cursor.getInt(8));
    entry.sethPaMorgen(cursor.getInt(9));
    entry.setMond(cursor.getString(10));
    entry.setGewicht(cursor.getFloat(11));

    return entry;
}


private DbEntry cursorToDbEntryMeerforelle(Cursor cursor) {
    DbEntry entry2 = new DbEntry();
    entry2.setId2(cursor.getLong(0));
    entry2.setDatum2(cursor.getString(1));
    entry2.setZeit2(cursor.getString(2));
    entry2.setWasserstand(cursor.getString(3));
    entry2.setWindstaerke2(cursor.getInt(4));
    entry2.setWindrichtung2(cursor.getString(5));
    entry2.setTemperaturW2(cursor.getInt(6));
    entry2.setStroemung(cursor.getString(7));

    return entry2;

}

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67150245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档