【问题标题】:column in sqlite database Androidsqlite数据库Android中的列
【发布时间】:2017-05-02 18:39:17
【问题描述】:

您好,我是 android 新手,请帮助我,我无法解决此错误

这是 logcat 错误

    android.database.sqlite.SQLiteException: no such column: datename (code 1):
   , while compiling: select productinserted from mbudgettable where datename=?

这是在 LOGCAT 中显示错误的行-

www.monthlybudget.suyash.DatabaseHandler.tproduct(DatabaseHandler.java:152)

数据库活动中的行-

151 String query = "select "+productinserted+" from " + tablename + " where datename="; 第 152 行光标 cursor = db.rawQuery(query, new String[] {sto});

这就是我创建数据库的方式-

      @Override
      public void onCreate(SQLiteDatabase db) {

     String CREATE_TABLE = "CREATE TABLE " + tablename + "("+KEY_ID + "INTEGER PRIMARY KEY,
      " + budgetinserted +" double, " +productinserted + " TEXT, " +amountinserted + " double,
     " +todayproductinserted + " TEXT,"  + todayamountinserted + " double, " + monthlyproductinserted + " string,
      " +monthlyamountinserted + " double, " + yearlybudgetinserted + "double, " + datename + "LONG, " + monthyear + "LONG);";

    db.execSQL(CREATE_TABLE);

   }

   @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    db.execSQL("DROP TABLE IF EXISTS " + tablename);

    onCreate(db);


}

请帮帮我,伙计们-

【问题讨论】:

    标签: android database sqlite android-sqlite android-database


    【解决方案1】:

    在列名和列类型之间添加空格。改变

    yearlybudgetinserted + "double, " + datename + "LONG, " + monthyear + "LONG);"
    

    yearlybudgetinserted + " double, " + datename + " LONG, " + monthyear + " LONG);"
    

    像这样修改架构后,您可以卸载一次应用,以便重新创建数据库。

    【讨论】:

    • 现在我收到此错误 //logcat android.database.sqlite.SQLiteException: near "=": syntax error (code 1): ,同时编译:select productinserted from mbudgettable wheredatename= String query = "select "+productinserted+" from " + tablename + " where" + datename +"="+sto;光标 cursor = db.rawQuery(query,new String[]{sto});
    • where 后面也需要空格。
    【解决方案2】:

    在您的创建表查询中,“日期名称”是一个变量。 但是在您的选择查询中,它直接用作字符串(引号内)!。

    "select "+productinserted+" from "+tablename +" where datename=";

    改为使用以下选择查询。

    "select "+productinserted+" from " + tablename + " where " + datename +"=";

    【讨论】:

    • 我在更改查询后收到此错误原因:android.database.sqlite.SQLiteException: near "=": syntax error (code 1): ,同时编译:select productinserted from mbudgettable wheredatename=
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多