为了账号安全,请及时绑定邮箱和手机立即绑定

android.database.sqlite.SQLiteException:没有这样的列:

android.database.sqlite.SQLiteException:没有这样的列:

MYYA 2022-07-27 21:01:50
我正在处理这个项目,如果应用程序离线,数据将保存到 SQLite。但是当我构建和运行时我得到了这个错误。我也检查了 SQL 查询。但无法得到确切的问题。MainActivity.javapublic class MainActivity extends AppCompatActivity {    RecyclerView recyclerView;    EditText name;    RecyclerView.LayoutManager layoutManager;    RecyclerAdapter recyclerAdapter;    ArrayList<Contact> arrayList=new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        recyclerView=findViewById(R.id.recyclerView);        name=findViewById(R.id.name);        layoutManager=new LinearLayoutManager(this);        recyclerView.setLayoutManager(layoutManager);        recyclerView.setHasFixedSize(true);        recyclerAdapter=new RecyclerAdapter(arrayList);        recyclerView.setAdapter(recyclerAdapter);        readfromlite();    }private void readfromlite()    {        arrayList.clear();        DbHelper dbHelper=new DbHelper(this);        SQLiteDatabase database=dbHelper.getReadableDatabase();        Cursor cursor=dbHelper.readlite(database);         while (cursor.moveToNext())         {             String name=cursor.getString(cursor.getColumnIndex(DbContract.NAME));             int sync_status= cursor.getInt(cursor.getColumnIndex(DbContract.sync_status));             arrayList.add(new Contact(name,sync_status));         }        recyclerAdapter.notifyDataSetChanged();         cursor.close();         dbHelper.close();}
查看完整描述

3 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

此行产生语法错误的 sql 语句:

String selection=DbContract.NAME+"LIKE?";

如果您将像 'Bob' 这样的值作为参数传递,则结果将是:(
nameLIKEBob而不是name LIKE 'Bob'),并且nameLIKEBob将被视为列名。

您需要插入这样的空格:

String selection=DbContract.NAME+" LIKE ?";


查看完整回答
反对 回复 2022-07-27
?
慕慕森

TA贡献1856条经验 获得超17个赞

将数据库版本从 1 更改为 201。

它现在正在工作。我实际上不知道版本号与解决方案有什么关系。希望有人给出解释。干杯。


查看完整回答
反对 回复 2022-07-27
?
阿晨1998

TA贡献2037条经验 获得超6个赞

我有同样的问题,但它是从表中删除一列,所以当我改变它


db.delete(cons.tableNames[3], Cart.KEY_f+"=$valueToChange", null)

为了这


db.delete(cons.tableNames[3], Cart.KEY_f + "  LIKE  '%" + valueToChange + "%' ", null)

我做这样的更新


fun updateCart(id: Int, mBusiness: Business) {

    val db = dbHelper.writableDatabase

    // New value for one column

    val valueToChange = mBusiness.e

    val values = ContentValues().apply {

        put(Business.KEY_e, valueToChange)

    }


    db.update(cons.tableNames[p.mReturnIntSP(meuContexto, cons.tablePosition)], values, "id=$id", null)

    db.close() // Closing database connection

}


查看完整回答
反对 回复 2022-07-27
  • 3 回答
  • 0 关注
  • 226 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号