Android:表没有名为“变量名称”的列 MySql 数据库错误

2024-03-14

当我尝试在数据库中添加新条目时,出现如下所示的错误。我现在已经搜索了几个小时,但无法发现问题所在。任何输入都会很棒!

这里是来自 LogCat 的错误.

02-27 23:02:51.451: E/SQLiteLog(6777): (1) table dager has no column named brutto
02-27 23:02:51.451: E/SQLiteDatabase(6777): Error inserting brutto=0 date=21.03.2013      
hours=4
02-27 23:02:51.451: E/SQLiteDatabase(6777): android.database.sqlite.SQLiteException:    
table dager has no column named brutto (code 1): , while compiling: INSERT INTO     
dager(brutto,date,hours) VALUES (?,?,?)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at 
android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at           android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1467)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1339)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at com.adev.timelonn.DatabaseHandler.addDay(DatabaseHandler.java:79)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at com.adev.timelonn.AddHours.onClick(AddHours.java:99)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at android.view.View.performClick(View.java:4084)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at android.view.View$PerformClick.run(View.java:16966)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at android.os.Handler.handleCallback(Handler.java:615)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at android.os.Handler.dispatchMessage(Handler.java:92)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at android.os.Looper.loop(Looper.java:137)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at android.app.ActivityThread.main(ActivityThread.java:4931)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at java.lang.reflect.Method.invokeNative(Native Method)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at java.lang.reflect.Method.invoke(Method.java:511)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
02-27 23:02:51.451: E/SQLiteDatabase(6777):     at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
02-27 23:02:51.451: E/SQLiteDatabase(6777): at dalvik.system.NativeStart.main(Native   
Method)

My 数据库文件.

 public class DatabaseHandler extends SQLiteOpenHelper {
 private static final int DATABASE_VERSION = 1;

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

 // Contacts table name
 private static final String TABLE_DAYS = "dager";

 // Contacts Table Columns names
 private static final String KEY_ID = "id";
 private static final String KEY_DATE = "date";
 private static final String KEY_HOURS = "hours";
 private static final String KEY_UB = "ub";
 private static final String KEY_BRUTTO = "brutto";

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

 // Creating Tables
 @Override
  public void onCreate(SQLiteDatabase db)        
 String CREATE_DAY_TABLE = "CREATE TABLE " + TABLE_DAYS + "(" 
 + KEY_ID + " INTEGER PRIMARY KEY," + KEY_DATE + " TEXT," + KEY_HOURS + " INTEGER,     
     " 
 + KEY_UB + " INTEGER," + KEY_BRUTTO + "INTEGER," + ")"; 
 db.execSQL(CREATE_DAY_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_DAYS);

  // Create tables again
  onCreate(db);
 }

 /**
  * All CRUD(Create, Read, Update, Delete) Operations
  */

 // Adding new contact
 void addDay(AddNewDay newday) {
  SQLiteDatabase db = this.getWritableDatabase();


  ContentValues values = new ContentValues();
  values.put(KEY_DATE, newday.getDate()); // GetDate
  values.put(KEY_BRUTTO, newday.getBrutto()); // GetBruttoLønn
  values.put(KEY_HOURS, newday.getHours()); // GetHours
  values.put(KEY_UB, newday.getUb()); // GetUBTillegg

  // Inserting Row
  db.insert(TABLE_DAYS, null, values);
  db.close(); // Closing database connection
 }

 // Get single day
 AddNewDay getContact(int id) {
  SQLiteDatabase db = this.getReadableDatabase();

  Cursor cursor = db.query(TABLE_DAYS, new String[] { KEY_ID,
    KEY_DATE, KEY_HOURS, KEY_BRUTTO, KEY_UB }, KEY_ID + "=?",
    new String[] { String.valueOf(id) }, null, null, null, null);
  if (cursor != null)
   cursor.moveToFirst();

  AddNewDay newday = new AddNewDay(Integer.parseInt(cursor.getString(0)),
    cursor.getString(1), Integer.parseInt(cursor.getString(2)),
    Integer.parseInt(cursor.getString(3)),Integer.parseInt(cursor.getString(4)));
  // return contact
  return newday;
 }

 // Getting All Contacts
 public List<AddNewDay> getAllContacts() {
  List<AddNewDay> contactList = new ArrayList<AddNewDay>();
  // Select All Query
  String selectQuery = "SELECT  * FROM " + TABLE_DAYS;

  SQLiteDatabase db = this.getWritableDatabase();
  Cursor cursor = db.rawQuery(selectQuery, null);

  // looping through all rows and adding to list
  if (cursor.moveToFirst()) {
   do {
    AddNewDay days = new AddNewDay();
    days.setID(Integer.parseInt(cursor.getString(0)));
    days.setDate(cursor.getString(1));
    days.setHours(Integer.parseInt(cursor.getString(2)));
    days.setUb(Integer.parseInt(cursor.getString(3)));
    days.setBrutto(Integer.parseInt(cursor.getString(4)));
    // Adding contact to list
    contactList.add(days);
   } while (cursor.moveToNext());
  }

  // return contact list
  return contactList;
 }

 // Updating single contact
 public int updateDay(AddNewDay newday) {
  SQLiteDatabase db = this.getWritableDatabase();

  ContentValues values = new ContentValues();
  values.put(KEY_ID,  newday.getID());
  values.put(KEY_DATE, newday.getDate());
  values.put(KEY_HOURS, newday.getHours());
  values.put(KEY_UB, newday.getUb());
  values.put(KEY_BRUTTO, newday.getUb());

  // updating row
  return db.update(TABLE_DAYS, values, KEY_ID + " = ?",
    new String[] { String.valueOf(newday.getID()) });
 }

 // Deleting single contact
 public void deleteDay(AddNewDay newday) {
  SQLiteDatabase db = this.getWritableDatabase();
  db.delete(TABLE_DAYS, KEY_ID + " = ?",
    new String[] { String.valueOf(newday.getID()) });
  db.close();
 }

 // Getting contacts Count
 public int getContactsCount() {
  String countQuery = "SELECT  * FROM " + TABLE_DAYS;
  SQLiteDatabase db = this.getReadableDatabase();
  Cursor cursor = db.rawQuery(countQuery, null);
  cursor.close();

  // return count
  return cursor.getCount();
 }


}

然后我的添加新日文件.

  public class AddNewDay {

 //private variables
     int _id;
     String _date;
     int _hours;
     int _ubtillegg;
     int _brutto;        

     // Empty constructor
     public AddNewDay(){
     }
     // constructor
     public AddNewDay(int id, String date, int hours, int ubtillegg, int            brutto){
      this._id = id;
      this._date = date;
      this._hours = hours;
      this._ubtillegg = ubtillegg;
      this._brutto = brutto;
     }       
     // constructor
     public AddNewDay(String date, int hours, int brutto){
      this._date = date;
      this._hours = hours;
      this._brutto = brutto;
     }
     // getting ID
     public int getID(){
      return this._id;
     }

     // setting id
     public void setID(int id){
      this._id = id;
     }

     // getting date
     public  String getDate(){
      return this._date;
     }

     // setting date
     public void setDate(String date){
      this._date = date;
     }

     // getting hours
     public int getHours(){
      return this._hours;
     }

     // setting hours
     public void setHours(int hours){
      this._hours = hours;
     }

     // getting ubtillegg
     public int getUb(){
      return this._ubtillegg;
     }

     // setting ubtillegg
     public void setUb(int ub){
      this._ubtillegg = ub;
     }

     // getting brutto
     public int getBrutto(){
      return this._brutto;
     }

     // setting brutto
     public void setBrutto(int brutto){
      this._brutto = brutto;
     }

             public String toString() {
         return _date + " jobbet du " + _hours + " timer.";
             }  
            }

这就是我在数据库中添加新条目的方法。

        // # Makes a new object of newday.
        AddNewDay newday = new AddNewDay ();
        newday._date = "21.03.2013";
        newday._id = 1;
        newday._hours = 4;
        newday._ubtillegg = 1500;

        // # Open databse connection and writes new day.
        DatabaseHandler connect = new DatabaseHandler (this);
        connect.addDay(newday);

        // # Updates the dblist with entries.
        GlobalVariables.dblist = connect.getAllContacts();

所以基本上我找到了解决方案。我仍然很困惑它是多么愚蠢。并清楚数据库工作我的超敏感材料!我的问题是我忘记了最后一个“INTEGER”值中的空格。所以而不是" INTEGER"我写"INTEGER",这给了我一个叫做"bruttoINTEGER"而不是“布鲁托”。所以错误就是空格。我将 createTable 函数重写为:

 public void onCreate(SQLiteDatabase db) {
   String CREATE_DAY_TABLE = "CREATE TABLE " + TABLE_DAYS + "(" 
 + KEY_ID + " INTEGER PRIMARY KEY," + KEY_DATE + " TEXT," + KEY_HOURS + " INTEGER, " 
 + KEY_UB + " INTEGER," + KEY_BRUTTO + " INTEGER" + ");"; 
 db.execSQL(CREATE_DAY_TABLE);
 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:表没有名为“变量名称”的列 MySql 数据库错误 的相关文章

  • 如何消除警告:使用“$”而不是“.”对于 Eclipse 中的内部类

    我是 Android 开发新手 当我将 eclipse 和 Android SDK 更新到最新版本后 我收到警告 Use instead of for inner classes or use only lowercase letters
  • Java 的 QP 求解器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 Asp.Net 的 GCM 推送通知

    正如您可能已经看到的 Google 正在迁移其推送通知系统 http developer android com guide google gcm c2dm html http developer android com guide goo
  • 将样式应用于警报对话框

    我决定尝试材质警报dialogs https material io develop android components dialog 在安卓上 我遇到的问题是当我尝试应用某些样式时 检查文档 我发现了这个
  • android 从图库中选择图像

    我想从图库创建一个图片选择器 我使用代码 intent new Intent Intent ACTION PICK android provider MediaStore Images Media EXTERNAL CONTENT URI
  • getViewByID 对于 Listview 返回 null

    我的 main xml 如下
  • 在 Android 版 Glide 中离线时加载已获取的图像

    我正在使用 Glide 版本 4 8 0 为了加载图像我这样做 GlideApp with HomePageFragment this load remoteURL diskCacheStrategy DiskCacheStrategy A
  • 字节码和位码有什么区别[重复]

    这个问题在这里已经有答案了 可能的重复 LLVM 和 java 字节码有什么区别 https stackoverflow com questions 454720 what are the differences between llvm
  • 用 Java 创建迷宫求解算法

    我被分配了用 Java 创建迷宫求解器的任务 这是任务 Write an application that finds a path through a maze The maze should be read from a file A
  • 有没有办法模拟小部件或屏幕特定位置的触摸?

    我想触摸或点击小部件上的某处 而不让用户在此时明确触摸屏幕 有什么办法可以做到吗 我已经检查了SO答案 有些人建议使用 集成测试 但在未物理或以某种方式连接到笔记本电脑的设备上无法执行 集成测试 无法找到更好的措辞 我还尝试进行 hitTe
  • Kotlin 中是否有类似于 #region #endregion 的语法?

    我知道我可以使用 region endregion 包围 C 中的代码片段 Kotlin 中是否有类似的语法 谢谢 region MyRegion protected void Page Load object sender EventAr
  • 使用 Maven 3 时 Cobertura 代码覆盖率为 0%

    读完这篇文章后 将 Cobertura 与 Maven 3 0 2 一起使用的正确方法是什么 https stackoverflow com questions 6931360 what is the proper way to use c
  • Android 中的字符串加密

    我正在使用代码进行加密和加密 它没有给出字符串结果 字节数组未转换为字符串 我几乎尝试了所有方法将字节数组转换为字符 但没有给出结果 public class EncryptionTest extends Activity EditText
  • 无法读取解析推送通知包数据

    我尝试使用 Parse 推送通知服务发送自定义数据 但从 Bundle 中提取时总是返回 null 值 自定义广播接收器 Override public void onReceive Context context Intent inten
  • Java的hashCode可以为不同的字符串产生相同的值吗?

    使用java的哈希码函数是否可以为不同的字符串提供相同的哈希码 或者如果可能的话 其可能性的 是多少 Java 哈希码是 32 位 它散列的可能字符串的数量是无限的 所以是的 会发生冲突 百分比是没有意义的 项目 字符串 的数量是无限的 而
  • 日期时间解析异常

    解析日期时 我的代码中不断出现异常错误 日期看起来像这样 Wed May 21 00 00 00 EDT 2008 这是尝试读取它的代码 DateTimeFormatter formatter DateTimeFormatter ofPat
  • 使用 Android 的 Mobile Vision API 扫描二维码

    我跟着这个tutorial http code tutsplus com tutorials reading qr codes using the mobile vision api cms 24680关于如何构建可以扫描二维码的 Andr
  • Java 9 中紧凑字符串和压缩字符串的区别

    有什么优点紧凑的字符串 http openjdk java net jeps 254JDK9 中的压缩字符串 压缩字符串 Java 6 和紧凑字符串 Java 9 都有相同的动机 字符串通常实际上是 Latin 1 因此浪费了一半的空间 和
  • 如何在Java中跨类共享变量,我尝试了静态不起作用

    类 Testclass1 有一个变量 有一些执行会改变变量的值 现在在同一个包中有类 Testclass2 我将如何访问 Testclass2 中变量的更新值 由 Testclass1 更新 试过这个没用 注意 Testclass1和Tes
  • 将隐藏(生物识别)数据附加到 pdf 上的数字签名

    我想知道是否可以使用 iText 我用于签名 或 Java 中的其他工具在 pdf 上添加生物识别数据 我会更好地解释一下 在手写板上签名时 我会收集签名信息 例如笔压 签名速度等 我想将这些信息 java中的变量 与pdf上的签名一起存储

随机推荐

  • 使用 Selenium 登录页面可以工作 - 使用 BS4 进行解析可以工作 - 但不能同时使用两者

    从 Wordpress 论坛获取一些数据需要登录和解析 两个部分 两者作为独立部分都可以很好地工作 我可以使用 selenium 登录 完美 并且我可以使用 BS4 解析 抓取 数据 但是当我将这两个部分结合起来时 我遇到了会话问题 我无法
  • 了解 Scala 类型系统中的 Aux 模式

    这个问题之前可能被问过并回答过 但我想通过一个例子来理解这一点 但我无法推理出 Aux 模式可能有帮助的地方 所以这是特点 trait Foo A type B def value B 为什么我的类型与值函数的返回类型绑定 这样做我能取得什
  • IEnumerable.ToList() 的影响

    我只是想知道打电话时发生了什么 ToList on an IEnumerable在 C 中 这些项目实际上是否被复制到堆上全新的重复项目 或者新列表只是引用堆上的原始项目 我很想知道 因为有人告诉我调用 ToList 的成本很高 而如果只是
  • c openmp并行用于并行区域内

    我的问题是这样的one https stackoverflow com questions 11493265 for loop inside parallel region 但我想做一些不同的事情 例如 在我的并行区域内 我想在 4 个线程
  • Java:非静态嵌套类和instance.super()

    我很难理解 Java 中的非静态嵌套类 考虑以下示例 它先打印 Inner 然后打印 Child class Outer class Inner Inner System out println Inner public class Chi
  • 在 SQL Server 2005 中使用 TABLOCK 和 HOLDLOCK 提示是否会完全阻止插入直到事务结束?

    我需要检索 SQL Server 2005 生成的标识字段 通常我只使用 SCOPE IDENTITY 或向插入添加 OUTPUT CLAUSE 但是这些方法在这种情况下都没有帮助 因为表附加了 INSTEAD OF 触发器 接下来我考虑了
  • C++20 中概念的语法

    在这个问题中我们如何转换需求link https stackoverflow com questions 67133581 check if type has certain value types and the keyword valu
  • 如何管理扩展方法的名称空间?

    您是否为所有扩展方法使用全局的 包罗万象的命名空间 或者是否将扩展方法放在与其扩展的类相同的命名空间中 或者您是否使用其他方法 例如应用程序或特定于库的命名空间 我问是因为我需要延长System Security Principal IId
  • MaterialContainerTransform 转换在返回时不起作用

    我的 MaterialContainerTransform 转换是从源 gt 目标进行的 但反之则不然 我的情况非常标准 我试图提供从 RecyclerView 项目 源片段 到 详细信息 片段 目标片段 的简单转换 RecyclerVie
  • 完全合格的域名是否需要句点?

    我对 FQDN 完全合格域名 感到困惑 FQDN 是否需要以句点结尾 喜欢sun or sun tuc noao edu or sun tuc noao edu 有什么不同 IT 的工作原理 域名 系统 https technet micr
  • Android:IllegalArgumentException:无法找到包含/data/data/的配置根目录

    刚刚进入 Android 的 Glide 图像加载库 使用这里的代码 https github com bumptech glide issues 459 https github com bumptech glide issues 459
  • 有人可以向我解释一下 Flutter 中 Builder 类的作用吗?

    该文档非常混乱和模糊 它是这样说的 建造者类 一个柏拉图式的小部件 它调用闭包来获取其子小部件 这是我的问题 他们所说的 柏拉图式 是什么意思 他们所说的 关闭 是什么意思 这堂课的目的到底是什么 经过长时间在互联网上进行的大量令人费解的研
  • Web 服务请求身份验证

    我们真的被困在这里所以我决定寻求你的帮助 昨天 我被要求帮助使用 Web 服务 获取 WSDL 的 URL 以及要使用的用户凭据 我从未真正与 Web 服务有任何关系 但对它们有一个总体了解并看到了一些示例 我认为它不会那么糟糕 显然我错了
  • 使用 nvcc 编译给出“没有这样的文件或目录”

    我正在尝试在 Ubuntu 上使用 nvcc 编译 CUDA 代码 但是 当我这样做时 我得到以下输出 gt make usr local cuda bin nvcc m64 ptxas options v gencode arch com
  • “main.cpp”在 Qt 项目中的作用

    在Qt项目中我们通常会找到一个project pro文件 该main cpp和几个标题 源和 ui文件 包含为应用程序 项目注入生命和功能的所有资源 如果还有更多的话 按下按钮即可显示 你好 世界 可能存在用于存储数据和配置文件等的目录 我
  • 有人知道我可以嵌入 WPF 窗口或 Windows 窗体中的代码编辑器吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想创建自己的 IDE 但我想要一个代码编辑器 语法高亮 我想将它作为控件嵌入到 WPF 窗口中 Malcolm The 夏普开发IDE
  • 在更新语句中获取最新的行版本/时间戳值 - Sql Server

    我正在使用 rowversion 列来处理乐观并发 并希望在完成更新后获取新的 rowversion 值 以便我的数据层具有最新值 并且可以通过获取并发异常来执行另一次更新 除非记录有已被其他人更新 我只是在更新后进入数据层 但这不是很有效
  • MVVM-light + RIA 服务最佳实践 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使 angular.js 路由长路径

    我正在使用 angular js 制作一个文件浏览器 所以 我会处理一些长网址 eg mydomain folder1 sub1 grand sub1 我只是学习 Angular 并发现 Angular 有 routeProvider 但是
  • Android:表没有名为“变量名称”的列 MySql 数据库错误

    当我尝试在数据库中添加新条目时 出现如下所示的错误 我现在已经搜索了几个小时 但无法发现问题所在 任何输入都会很棒 这里是来自 LogCat 的错误 02 27 23 02 51 451 E SQLiteLog 6777 1 table d