没有这样的列:498(code 1): [英] no such column: ٤۹۸ (code 1):

查看:240
本文介绍了没有这样的列:498(code 1):的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我采用了android工作室译翻译编辑我的应用程序,我跑我的使用阿拉伯语的Andr​​oid手机上的应用程序时出现此错误是它的语言:


  

android.database.sqlite.SQLiteException:没有这样的列:498(code 1),在编译:SELECT * FROM照中的STORE_ID = 498 ORDER BY photo_id ASC


在APP_ID的方法>的java>玉米>数据库>查询是:

 公开的ArrayList<照片及GT; getPhotosByStoreId(INT STOREID){    ArrayList的<照片及GT;名单=新的ArrayList<照片及GT;();
    DB = dbHelper.getReadableDatabase();    SQL字符串=的String.format(SELECT * FROM照中的STORE_ID =%d个,STOREID);
    光标mCursor = db.rawQuery(SQL,NULL);
    mCursor.moveToFirst();    如果(!mCursor.isAfterLast()){
        做{            照片=进入formatPhoto(mCursor);            list.add(输入);
        }而(mCursor.moveToNext());
    }
    mCursor.close();
    dbHelper.close();    返回列表;
}


解决方案

使用的全套方法参数的<一个href=\"http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#rawQuery(java.lang.String,%20java.lang.String[])\"相对=nofollow> rawQuery 以逃避正常的值在SQL语句中使用。

  ...
ArrayList的&LT;照片及GT;名单=新的ArrayList&LT;照片及GT;();
DB = dbHelper.getReadableDatabase();
光标mCursor = db.rawQuery(SELECT * FROM照中的STORE_ID =?,
                             新的String [] {STOREID});
mCursor.moveToFirst();
...

I translated my app using android studio translation editor, i get this error when running my application on android phone using Arabic as its language:

android.database.sqlite.SQLiteException: no such column: ٤۹۸ (code 1): , while compiling: SELECT * FROM photos WHERE store_id = ٤۹۸ ORDER BY photo_id ASC

The method in app_id > java > com > db > Queries is:

public ArrayList<Photo> getPhotosByStoreId(int storeId) {

    ArrayList<Photo> list = new ArrayList<Photo>();
    db = dbHelper.getReadableDatabase();

    String sql = String.format("SELECT * FROM photos WHERE store_id = %d", storeId);
    Cursor mCursor = db.rawQuery(sql, null);  
    mCursor.moveToFirst();

    if (!mCursor.isAfterLast()) {
        do {

            Photo entry = formatPhoto(mCursor);

            list.add(entry);
        } while (mCursor.moveToNext());
    }
    mCursor.close();
    dbHelper.close();

    return list;
}

解决方案

use the full set of method arguments for rawQuery to properly escape your values for use in a sql statement.

...
ArrayList<Photo> list = new ArrayList<Photo>();
db = dbHelper.getReadableDatabase();
Cursor mCursor = db.rawQuery("SELECT * FROM photos WHERE store_id = ?", 
                             new String[] { storeId }); 
mCursor.moveToFirst();
...

这篇关于没有这样的列:498(code 1):的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆