异常“表......没有名为......的列”

2024-01-02

我在尝试插入名为“my_card”的表时遇到一个非常奇怪的错误。

这些是我在单独的接口中定义的一些常量:

//tables name
public static final String TABLE_MY_CARD= "my_card" ;
public static final String TABLE_MY_CONTACTS = "my_contacts" ;

// Columns
public static final String NAME = "name" ;
public static final String PHONE = "phone" ;
public static final String EMAIL = "email";

public static final String FACEBOOK = "facebook";
public static final String WEBSITE = "web";
public static final String MAJOR = "major";
public static final String ULINK = "ulink";

之后我有一个扩展 SQLiteOpenHelper 的类,有 2 个函数。最重要的是第一个创建由参数指定的表。

public class MySQLite_methods extends SQLiteOpenHelper implements Tables {

private static final String DATABASE_NAME = "my_database.db" ;
private static final int DATABASE_VERSION = 1;
private String TABLE_NAME;

/** Create a helper object for the Events database */
public MySQLite_methods (Context ctx, String table_name) 
{
    super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
    this.TABLE_NAME = table_name;
}

@Override
public void onCreate(SQLiteDatabase db) 
{       
    String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + 
                    " (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +               
                    NAME + " TEXT NOT NULL," + 
                    PHONE + " TEXT NOT NULL,"+
                    EMAIL + " TEXT NOT NULL,"+                      
                    FACEBOOK + " TEXT,"+
                    WEBSITE + " TEXT,"+
                    MAJOR + " TEXT NOT NULL,"+
                    ULINK + " TEXT NOT NULL" + ");" ;

    db.execSQL(sql);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
{
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
    onCreate(db);
}
}

最后,在我的活动中,按下保存按钮后,将创建该类的实例,并且必须将一些 EditText-s 的值插入到数据库中:

            MySQLite_methods mysql = new MySQLite_methods (context, TABLE_MY_CARD);


            Log.d("geo", "before getWr....");

            // getting the database..
            SQLiteDatabase db = mysql.getWritableDatabase();

            // creating an object of type ContentValues which represents the record i am gonna add into the DB
            ContentValues values = new ContentValues();

            values.put(NAME, name.getText().toString());
            values.put(PHONE, phone.getText().toString());
            values.put(EMAIL, email.getText().toString());

            values.put(FACEBOOK, facebook.getText().toString());
            values.put(WEBSITE, website.getText().toString());
            values.put(MAJOR, major.getText().toString());
            values.put(ULINK, ulink.getText().toString());

            Log.d("geo", "before insert");

            // inserting data
            db.insertOrThrow(TABLE_MY_CARD, null, values);

在插入时它给出了这个异常:

“android.database.sqlite.SQLiteException:表 my_card 没有名为 web 的列......”

我一遍又一遍地检查是否有拼写错误,但没有……所以我不知道现在该怎么办……有什么想法吗? 谢谢


您创建的 SQL 开始于CREATE TABLE IF NOT EXISTS。所以我的想法是,当设备已经有该表时,您添加了网络列。如果是这种情况,那么只需重新安装应用程序 - 它将删除数据库,因此您可以确保将使用该列创建表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

异常“表......没有名为......的列” 的相关文章

随机推荐

  • .Net 内存转储中存在大量死线程

    在分析 Net4 5 WCF w3wp 进程的内存转储期间 我遇到了许多被标识为死亡的线程 threads 显示 107 个线程中有 68 个已死亡 这似乎相当高 我想知道这些线程是否可以容纳大量内存 因为进程最终会高达 20GB 并且似乎
  • 如何将 y=1/x 绘制为单个图[重复]

    这个问题在这里已经有答案了 有没有一种简单的方法可以将正负趋于无穷大的函数绘制为单个图 而无需将正负两端连接起来 例如 使用此代码绘制 y 1 x 会得到结果图 import numpy as np import matplotlib py
  • 无法解决 Django 设置中的 mod_wsgi 异常

    我正在与我的托管提供商合作来启动并运行 Django 应用程序 但我们俩都不是很有经验 而且我们基本上已经陷入了完全的死胡同 我无法直接访问该 conf 文件 但以下是向我描述其内容的方式
  • NSMenuItem KeyEquivalent“”(空格)错误

    我想为 NSMenuItem 在应用程序主菜单中 设置等效键 空格 而无需任何修饰符 根据文档如下 例如 在播放媒体的应用程序中 播放命令可能仅映射到 空格 而没有命令键 您可以使用以下代码来执行此操作 menuItem setKeyEqu
  • 哪个用户启动了 EC2 实例?

    我有一些 EC2 实例 我真的不知道是谁启动了它们 有没有办法知道谁启动了特定实例 不幸的是 此信息无法通过 API 调用直接获得 您当前有两个选择 depending on your needs you could approximate
  • 如何从 Swift 中的字符串中删除“\U0000fffc”?

    我已将图像添加到文本字段 并希望再次将其删除 我尝试了以下两行但没有效果 string string stringByReplacingOccurrencesOfString U0000fffc withString options NSS
  • 我没有让 Keycloak 在 Traefik 后面的 docker 中工作

    我有一个域 example org 我有 docker 在那里运行 Traefik 作为代理 现在我想设置Keycloak 我想访问 auth example org 上的 Keycloak 这是我的配置 docker compose ke
  • Gulp.js 任务名称约定

    是否有编写 Gulpfiles 命名任务 构建配置文件等的约定 也许有一些基本的常识可以从 Grunt 的世界中得到 您如何处理构建 Gulpfile 的问题 就好像您要辞掉工作 下一个 JS 开发人员会来并直观地了解如何构建项目一样 因此
  • 如何使 Zebra ZXP 系列 3 卡上打印的标签文本居中?

    我正在打印卡片Zebra ZXP 系列 3 证卡打印机 https www zebra com us en support downloads printers card zxp series 3 html 我正在使用他们提供的 SDK 该
  • 将 Javascript 应用于 XSL

    我注意到 如果我尝试通过 java 脚本将更改应用到 XSL 文件 它只会影响 XSL 创建的最顶层节点 例子 我想隐藏多个博客条目的所有评论 结果只有顶部的博客条目才会隐藏评论 我想更改超链接的文本 超链接文本只会在最顶部的节点中更改 如
  • TSQL:如何使用另一个相关表中的 xml 标记的值更新 xml 标记的值?

    如何使用另一个相关表中 xml 标记的值更新 xml 标记的值 像这样的东西 UPDATE v2 SET xml modify replace value of TAG1 text 1 with CAST v1 xml query TAG2
  • 使用索引编辑 pandas DataFrame

    是否有一种通用 有效的方法来为 pandas 中的 DataFrame 子集赋值 我有数百行和列 我可以直接访问 但我还没有设法弄清楚如何在不迭代每一行 列对的情况下编辑它们的值 例如 In 1 import pandas numpy In
  • Xcode 7 构建失败:ld:找不到 -lGoogleAnalyticsServices 的库

    每次当我使用 Xcode 打开应用程序时 我都会收到此错误 ld library not found for lGoogleAnalyticsServices clang error linker command failed with e
  • Lambda 表达式:对特定对象的实例方法的引用[重复]

    这个问题在这里已经有答案了 此代码使用对特定对象的实例方法的方法引用 public class Main public static void main String args One one new One F f gt one bar
  • CA1416。如何告诉构建者唯一的平台是Windows?

    dotnet run 在 Windows 上 原因warning CA1416 This call site is reachable on all platforms WellKnownSidType WorldSid is only s
  • 如何在 Flutter 中调整图像或小部件的色相饱和度和亮度?

    在我的 Flutter 应用程序中 我有一张图像和三个滑块 其中一个用于Hue 一个用于饱和 还有一个用于亮度 我正在尝试弄清楚如何使用ColorFiltered小部件来进行这些调整 但我不知道要放入什么ColorFilter matrix
  • flex-grow 未按预期调整弹性项目的大小

    看来 Flex div 内的内容会影响其计算的大小flex grow财产 难道我做错了什么 在下面提供的小提琴中 您会看到一个数字键盘 除底行外 所有行均包含 3 个数字 该行的 0 宽度应为 2 个数字 因此flex grow 2 冒号
  • 在托管对象上下文之间传递对象

    我有一个带有 2 个托管对象上下文的 iPhone 应用程序 我的上下文之一涉及选择器 它允许用户添加新记录 然后选择这些新记录之一 一旦选择器被隐藏 该托管对象上下文将被保存并丢弃 然后 我想在第二个托管对象上下文中使用这个选定的对象 并
  • 带有 Lahiri Ayanamsha 的瑞士星历恒星模式给出了错误的值

    我正在尝试生成行星的经度 我使用瑞士星历 dll 来完成我所有的艰苦工作 然而 不幸的是 瑞士星历为恒星模式 Lahiri Ayanamsha 生成的值与我从其他吠陀软件或在线门户网站获得的值相去甚远 大约 25 分钟 尤其是月亮 包括少年
  • 异常“表......没有名为......的列”

    我在尝试插入名为 my card 的表时遇到一个非常奇怪的错误 这些是我在单独的接口中定义的一些常量 tables name public static final String TABLE MY CARD my card public s