首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android Sqlite给出错误“没有这样的列: dbdb (代码1):”

Android SQLite是一种轻量级的嵌入式数据库,用于在Android应用程序中存储和管理数据。当在使用SQLite数据库时,可能会遇到一些错误,如"没有这样的列: dbdb (代码1)"。这个错误通常是由于数据库表中不存在所引用的列名导致的。

要解决这个错误,可以按照以下步骤进行操作:

  1. 确保表中存在所引用的列名:检查数据库表的结构,确保所引用的列名在表中存在。可以使用SQLite的命令行工具或SQLite管理工具(如SQLiteStudio)来查看表的结构。
  2. 检查列名的拼写和大小写:确保所引用的列名的拼写和大小写与表中的列名一致。SQLite对列名是大小写敏感的,因此如果列名的大小写不匹配,会导致错误。
  3. 检查SQL语句中的表名和列名:检查SQL语句中引用的表名和列名是否正确。确保表名和列名与数据库中的实际表名和列名一致。
  4. 更新应用程序代码:如果以上步骤都没有解决问题,可能是应用程序代码中存在错误。检查应用程序代码中执行SQL查询的部分,确保正确引用了表名和列名。

总结:

Android SQLite是一种用于在Android应用程序中存储和管理数据的嵌入式数据库。当遇到错误"没有这样的列: dbdb (代码1)"时,可以通过检查表结构、列名拼写和大小写、SQL语句中的表名和列名以及应用程序代码来解决问题。如果以上步骤都无法解决问题,可能需要进一步调试和排查代码逻辑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【错误记录】Android Studio 的 Flutter 代码界面没有 Logcat 面板

文章目录 一、 报错信息 二、 解决方案 一、 报错信息 ---- 从 GitHub 上将代码克隆到本地 , 调试程序时发现 , 没有 Logcat 面板 , 到菜单栏 / View / Tool Windows...中也没有看到 Logcat 面板设置 ; 二、 解决方案 ---- 注意观察当前界面已经连的设备中显示的是 " Loading Devices " , 说明是 Android 设备相关设置问题 ;...选择 菜单栏 / File / Project Structure 选项 , 在 " Project Structure " 对话框中可以看到没有配置 Project SDK , 这里配置一个...Android SDK ; 配置 Android SDK 后 , 点击 Apply 应用按钮 , 然后点击 OK 按钮 , 此时应用会重新构建 ; 然后切换到 " Facets " 选项卡 , 点击图中的..." + " 加号按钮 , 在弹出的下拉菜单中选择 " Android " 选项 , 在之后弹出的 " Choose Module " 对话框中 , 选择本 Module 应用 , 出现如下界面

1.7K00

Android Room 持久化库

这样,在设备没有网络的时候就可以浏览离线数据。当设备联网后,将用户改动的数据同步至服务端。...Room 也会验证方法的返回值,如果返回对象中的字段名称和查询响应中的字段名字不匹配, Room 会通过以下方式给出提示 如果只有一些字段名称不匹配,会发出警告 如果没有字段名称匹配,会发出错误。...在编译时,Room会知道是查询用户表的所有列。如果查询包含语法错误或者数据库中不存在这个表。Room会在编译时报错并给出错误信息。 将参数传递给查询 大部分时候查询都是需要过滤参数的。...Room使用参数名字匹配,如果匹配不上给出错误提示。...所以 Room 会生成正确的代码。如果查询返回的列多了或者少了,Room会给出警告 这里也可以使用@Embedded注解 传递参数集合 有时候查询的参数数量是动态的,只有运行的时候才知道。

4K70
  • 【错误记录】Android Studio 的 Flutter 代码界面没有 Logcat 面板 ( 2021年08月28日最新解决方案 )

    文章目录 前言 一、 报错信息 二、 解决方案 前言 在之前的博客 【错误记录】Android Studio 的 Flutter 代码界面没有 Logcat 面板 中 , 处理了该问题 , 不过时去年的解决方案...应用后 , 发现没有 Logcat 面板 ; 在 菜单栏 " View | Tool Windows | Project " 中 , 没有对应的 Logcat 选项 ; 二、 解决方案 ----...首先查看一下 Android 的 compileSdkVersion 和 targetSdkVersion 版本号 30 ; 在 Project 面板中 , 点击右键 , 在弹出的菜单中 , 选择...提示 , 并且没有日志输出 ; 点击 configure 按钮 , 弹出如下界面 : 点击 Module SDK 下拉菜单 , 选择 Android API 30 ; 这个 30 是之前看的 Flutter...项目对应的 Android 项目中的 compileSdkVersion 和 targetSdkVersion 版本号 30 ; 设置完毕后 , 点击 Apply , OK 按钮 ; 设置完毕

    2.6K30

    Android数据存储实现的5大方式

    特点: 面向资源有限的设备, 没有服务器进程, 所有数据存放在同一文件中跨平台, 可自由复制。 SQLite 内部结构: ?...当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。...REAL);”); 这条语句会创建一个名为 mytable 的表,表有一个列名为 _id,并且是主键,这列的值是会自动增长的整数(例如,当你插入一行时,SQLite 会给这列自动赋值),另外还有两列:...为此,Android提供一系列的帮助类(在android.provider包下),里面包含了很多以类变量形式给出的查询字符串,这种方式更容易让我们理解一点,参见下例: MediaStore.Images.Media.INTERNAL_CONTENT_URI...这里给出一种常用的格式: vnd.android.cursor.item/vnd.yourcompanyname.contenttype (单个记录的MIME类型) 比如, 一个请求列车信息的URI如content

    6.8K90

    Android SQLite数据库基本用法详解

    截图20201031100553] 这一行规定死了,只能是这样的: public class DBHelper extends SQLiteOpenHelper{ } 需要写一个带全部参数的...在Activity中创建数据库,这里我们给数据库起名为“info.db”,数据库版本号为1,代码如下: //依靠DatabaseHelper带全部参数的构造函数创建数据库 DBHelper dbHelper...列中参数值和“参数1”相同的位置并移动游标) Cursor cursor = db.rawQuery("select \* from user where username = ?"..., new String[]{"参数1", "参数2"}); //给出提示 Toast.makeText(this, "注册成功", Toast.LENGTH\_SHORT).show...两个列中参数值和“参数1”、“参数2”同时相同的位置并移动游标) Cursor cursor = db.rawQuery("select \* from user where username = ?

    2.2K30

    Android数据存储实现的5大方式

    特点: 面向资源有限的设备, 没有服务器进程, 所有数据存放在同一文件中跨平台, 可自由复制。 SQLite 内部结构: ?...SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。...当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。...为此,Android提供一系列的帮助类(在android.provider包下),里面包含了很多以类变量形式给出的查询字符串,这种方式更容易让我们理解一点,参见下例: MediaStore.Images.Media.INTERNAL_CONTENT_URI...这里给出一种常用的格式: vnd.android.cursor.item/vnd.yourcompanyname.contenttype (单个记录的MIME类型) 比如, 一个请求列车信息的URI如content

    3.5K20

    开源 | 携程机票跨端 Kotlin DSL 数据库框架 SQLlin

    原因主要在于以下三点: (1)SQLite 的原始 API 颗粒度较细,直接在业务代码中使用较为繁琐且容易出错。 (2)SQL 语句以字符串的形式存在于代码中,不受编译器检查。...,继承自 Table,然后手动编写代码,使用属性表示表中的列。...如果要在低版本的 Android 系统上支持这些参数配置,我们需要自行编写 JNI 代码,实现一套 JVM 层的 SQLite API。...这些类型关系可以在代码编写阶段约束一些语法准则,避免将 SQL 的语法错误留到运行时暴露。...利用 Kotlin 的语法规则可以在很大程度上保证在编译期间暴露出我们编写的 SQL 错误,并在绝大部分情况下阻止错误的 SQL 语句代码通过编译。

    1.7K40

    移动应用常见Bug汇总及预防方法

    (手动输入 、点选 、下拉选择) 4.6 出报表的时候,查询条件需要显示在报表标题的下面,这样看报表的时候知道数据的依据是什么 4.7 对于范围的查询采用全闭的形式(如 [2006-1-1,2006-12...数据库查询得到的cursor里面只有1个结果,你却查找第-1个,肯定不对 8.launcher.apk启动程序在启动动画页面卡住,原因是开机动画很暂用cpu,如果luancher里面的某部分代码阻塞了,...或者某个自定义view中部分代码太占用CPU导致的。...而在关闭的同时,却没能及时的调用dismiss来解除对ProgressDialog等的引用,从而系统抛出了标题中的错误,而掩盖了真正导致这个错误的异常信息。...这样的错误,这里总结两种解决方式: 在AndroidManifest.xml文件中查看主Activity的名字前是否有'.'

    1.2K21

    Android中SQLite数据库小计

    Java中执行SQL:SQLiteDatabase类 为了在java代码中针对SQLite数据库执行一些SQL查询等操作,Android 框架提供了SQLiteDatabase类。...Android SQLite API还提供了一系列的API来对应不同的SQL语法。包括insert、update、delete和query等,相应地,还有一些等价的简化方法和数据库管理方法。...同样的,触发器这样的特性也不要过于依赖。最基本的,主键和列的唯一约束,自增等都是支持的。应该保持SQLite的轻量级和高效,可以在代码中自行组合方法来完成约束的实现。...——没有任何未提交的事务,没有任何对大对象文件的打开的连接时——去纠缠那些很快就会被释放的内存显然是没必要的。...这个策略虽然简单,还是需要注意: 如果代码忘了显式关闭db实例,那么GC仅仅是回收此对象,这样会产生一个错误信息: 09-02 15:27:10.286: E/SQLiteDatabase(16433)

    2.1K90

    android开发之使用SQLite数据库存储

    它的优点就是高效,Android 运行时环境包含了完整的 SQLite。...SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。...当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。...onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。...创建表和索引 为了创建表和索引,需要调用 SQLiteDatabase 的 execSQL() 方法来执行 DDL 语句。如果没有异常,这个方法没有返回值。

    2.6K20

    Android Debug Bridge

    ,可以在命令行中运行adb命令来调用该客户端, 像ADB插件和DDMS这样的Android工具也可以调用adb客户端。...需要说明的是,每一个模拟器或手机使用一对有序的端口,偶数号 端口用于控制台连接,奇数号端口用于adb连接,例如: Emulator 1, console: 5554 Emulator 1...在模拟器或手机与adb发生连接后就执行install,会由于系统还没有完全启动而会引起错误。 服务端项 start-server 检测adb服务进程是否启动,如果没启动则启动它。...优先级是下面的字符,顺序是从低到高: V — 明细 (最低优先级) D — 调试 I — 信息 W — 警告 E — 错误 F — 严重错误 S — 无记载 (最高优先级,没有什么会被记载) 通过运行logcat...,可以获得一个系统中使用的标记和优先级的列表,观察列表的前两列,给出的格式是/。

    1.5K21

    微信移动端数据库组件 WCDB 系列:数据库修复三板斧(二)

    这样的操作,和普通查表是一样的,遇到损坏一样会返回SQLITE_CORRUPT,我们忽略掉损坏错误, 继续遍历下个表,最终可以把所有没损坏的表以及损坏了的表的前半部分读取出来。...sqlite_master的表名、表结构都是固定的, 由文件格式定义,RootPage 固定为 page 1。...B-tree的每一行(或者说每个entry、每个record)可以有不同的列数,一般来说,SQLite插入一行时, B-tree里面的列数和实际表的列数是一致的。...但是当对一个表进行了ALTER TABLE ADD COLUMN操作, 整个表都增加了一列,但已经存在的B-tree行实际上没有做改动,还是维持原来的列数。...当SQLite查询到ALTER TABLE前的行,缺少的列会自动用默认值补全。恢复的时候,也需要做同样的判断和支持, 否则会出现缺列而无法插入到新的DB。

    4.3K01

    微信移动端数据库组件WCDB系列(二) — 数据库修复三板斧

    这样的操作,和普通查表是一样的,遇到损坏一样会返回SQLITE_CORRUPT,我们忽略掉损坏错误, 继续遍历下个表,最终可以把所有没损坏的表以及损坏了的表的前半部分读取出来。...sqlite_master的表名、表结构都是固定的, 由文件格式定义,RootPage 固定为 page 1。...B-tree的每一行(或者说每个entry、每个record)可以有不同的列数,一般来说,SQLite插入一行时, B-tree里面的列数和实际表的列数是一致的。...但是当对一个表进行了ALTER TABLE ADD COLUMN操作, 整个表都增加了一列,但已经存在的B-tree行实际上没有做改动,还是维持原来的列数。...当SQLite查询到ALTER TABLE前的行,缺少的列会自动用默认值补全。恢复的时候,也需要做同样的判断和支持, 否则会出现缺列而无法插入到新的DB。

    1.9K40

    Android学习--持久化(三) SQLite & LitePal

    然后打开你的终端我们继续:        1、检查一下你是不是有.bash_profile文件,打开终端 ls  -a 查看一下是不是有这个文件,没有的就到下一步,有的就跳过第二步       2、没有上面查看的文件...(具体代码下面)       二:SQLite的升级       我们想象这样一个场景,我们要是需要在数据库当中添加一张表那我们需要怎么办呢?...(具体代码下面)       三:SQLite的增删查改       下面代码是上面三点的代码的总结,代码是写在一起的,下面是我们写的SQManager文件内容: package SQManager;...ID的哪一列没有赋值呢?...// 第一个参数是表名称 // 第二个参数用于指定查询那一列,要是没有至此那个就查询所有 // 第三,第四各参数用于约束查询某一行或者几行的数据

    80230

    DBDB: 一个简单的keyvalue数据库(一)

    DBDB可以在服务器崩溃或者发生错误的情况下保存数据,并且也避免了所有数据都保存在内存中,因此它可以存储比服务器内存更多的数据。 DBDB解决的三个问题 如果您的文件系统空间不足,会发生什么情况?...如果你的数据大小超过可用内存呢? DBDB的特点 数据库的特点可以用ACID来描述:原子性,一致性,隔离性和持久性。DBDB中的数据更新具有原子性和持久性。...但是DBDB不提供一致性保证,因为它没有对存储的数据施加限制。同样的,隔离性也没有实现。当然,应用程序可以使用属于它自己的一致性保证,但隔离性则需要专门的事务管理器。除此以外,还有其它的问题存在。...俯瞰DBDB DBDB分为逻辑层(数据结构:二叉树),物理层(如何在磁盘上存储数据)以及接口API(key值与value值的具体内容)几层。...代码架构 下面的模块是按终端用户的使用频率进行降序排序的,换句话说,第一个模块是用户了解的最多的模块,而最后一个模块与终端用户没有什么交集。

    1.2K30

    android之存储篇_SQLite存储方式「建议收藏」

    BLOB: 大数据   在SQLite中,并没有专门设计BOOLEAN和DATE类型,因为BOOLEAN型可以用INTEGER的0和1代替true和false,而DATE类型则可以拥有特定格式的TEXT...这样简单的数据类型设计更加符合嵌入式设备的要求。...关于SQLite的更多资料,请参看:http://www.sqlite.org/   在Android系统中提供了android.database.sqlite包,用于进行SQLite数据库的增、删、改...Android系统并没有提供特别的创建数据表的方法,数据表通过SQL语句创建,代码如下: db.execSQL("CREATE TABLE tab(_id INTEGER PRIMARY KEY AUTOINCREMENT...本人更喜欢rawQuery的方式,因为此方式更接近传统Java开发,也可以由专业DBA来书写SQL语句,这样更符合MVC的思想,而且这样的代码可读性更高。

    1.2K20

    android学习笔记----SQLite数据库

    sqlite中是不支持删除列操作的,所以网上 alter table [table_name] drop column [col_name] 这个语句在sqlite中是无效的(这不是MySQL),而替代的方法可以如下...只能创建类似于这样给出明确约束的 CREATE TABLE temp(id INTEGER PRIMARY KEY AUTOINCREMENT, NAME CHAR(20)); MyDBOpenHelper.java...当然卸载程序再次运行也可以,这样的做法比较极端。这里就可以用到SQLiteOpenHelper的升级功能了。...> 当输入数据然后点击添加的时候数据库会被创建(如果数据库还没被创建),数据会添加成功 我们可以把数据库导出到SQLite Expert去查看表内容,也可以直接在控制台查看一个大概,查看数据库和表有没有被创建...table:要编译查询的表名。     columns:返回哪些列的列表。传递NULL将返回所有列,这是不鼓励的,以防止从存储区读取不被使用的数据。

    1K20
    领券