Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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
Java SQLiteException:没有这样的列:1(代码1):_Java_Android_Sqlite - Fatal编程技术网

Java SQLiteException:没有这样的列:1(代码1):

Java SQLiteException:没有这样的列:1(代码1):,java,android,sqlite,Java,Android,Sqlite,通常当这个问题发生时,是因为缺少引号。但这列是整数,我想在其中加一个整数值。然而,这一错误突然出现: android.database.sqlite.SQLiteException:没有这样的列:1(代码1):,编译时:插入Artista(id,nome)值(1,'19') 我的代码: String CREATE_TABLE_ORIGEM = "CREATE TABLE Origem" + "(" + "id

通常当这个问题发生时,是因为缺少引号。但这列是整数,我想在其中加一个整数值。然而,这一错误突然出现:

android.database.sqlite.SQLiteException:没有这样的列:1(代码1):,编译时:插入Artista(id,nome)值(1,'19')

我的代码:

    String CREATE_TABLE_ORIGEM =
            "CREATE TABLE Origem" +
            "(" +
                "id INTEGER PRIMARY KEY, " +
                "nome TEXT" +
            ")";

    String CREATE_TABLE_ARTISTA =
            "CREATE TABLE Artista" +
            "(" +
                "id INTEGER PRIMARY KEY, " +
                "nome TEXT" +
            ")";

    db.execSQL(CREATE_TABLE_ORIGEM);
    db.execSQL(CREATE_TABLE_ARTISTA);

    String INSERT_ORIGEM = "INSERT INTO Origem (id, nome)";
    String INSERT_ARTISTA = "INSERT INTO Artista (id, nome)";

    String line;
    try{
        BufferedReader reader = new BufferedReader(new InputStreamReader(myContext.getAssets().open("origem.txt"), "UTF-8"));
        try {
            while ((line = reader.readLine()) != null)
                db.execSQL(INSERT_ORIGEM + " VALUES (" + line + ")");
        } catch(Exception e) {
            throw new RuntimeException(e);
        } finally {
            reader.close();
        }

        reader = new BufferedReader(new InputStreamReader(myContext.getAssets().open("artista.txt"), "UTF-8"));
        try  {
            while ((line = reader.readLine()) != null)
                db.execSQL(INSERT_ARTISTA + " VALUES (" + line + ")");
        } catch(Exception e) {
            throw new RuntimeException(e);
        } finally {
            reader.close();
        }
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
这些是我用来填充表格的TXT:
origem.txt:
artista.txt:


有趣的是:表Origem有相同的格式,但我没有任何错误

不久前,我帮助了一个人解决了类似的问题。看看这些建议是否对你也有帮助

简言之,如果您随着时间的推移进行了DDL更改,您可能正在使用比您意识到的更旧版本的模式:

  • 如果可以,请通过DDMS下拉DB的副本并检查模式,或者
  • 尝试从头开始删除并重新安装应用程序,以确保您拥有最新版本的架构

希望这能在某种程度上有所帮助。

不久前,我曾帮助某人解决过类似的问题。看看这些建议是否对你也有帮助

简言之,如果您随着时间的推移进行了DDL更改,您可能正在使用比您意识到的更旧版本的模式:

  • 如果可以,请通过DDMS下拉DB的副本并检查模式,或者
  • 尝试从头开始删除并重新安装应用程序,以确保您拥有最新版本的架构

希望这对您有所帮助。

您可以尝试直接从AVD或真实设备中清理应用程序数据,以“更新”表格

  • 进入设置->应用->应用->存储->清除数据

您可以尝试直接从AVD或真实设备清理应用程序数据,以“更新”表格

  • 进入设置->应用->应用->存储->清除数据

文本文件的开头包含一个不可见的控制字符(可能是UTF-8字节顺序标记)。删除它。

文本文件的开头包含一个不可见的控制字符(可能是UTF-8字节顺序标记)。删除它。

实际上,读卡器以某种方式插入了一个UTF-8字节顺序。在开始在数据库中插入元素之前,我在文件中添加了一行额外的内容,并对readLine()进行了第一次调用。实际上,读卡器以某种方式插入了UTF-8字节顺序。在开始在数据库中插入元素之前,我在文件中添加了一行额外内容,并首次调用了readLine()。请正确检查整个查询!!!!!静态或动态。正确检查整个查询!!!!!静态的或动态的。