gpt4 book ai didi

java - 如何修复sqlite中的 "no such column"

转载 作者:行者123 更新时间:2023-12-02 01:37:42 25 4
gpt4 key购买 nike

在我添加 UserUid 字段之前,它工作得很好,现在它不断崩溃,我不知道为什么。它是一个数据库,我将其修复为从特定的当前用户中进行选择,但它告诉我该列不存在。

我已经重新创建了 Sqlite 数据库,但运气不佳

我收到的错误是在 GetCountCart() 处,但我认为问题不存在

public class Database extends SQLiteAssetHelper {
private static String DB_NAME="OrderMeDB.db";
private static int DB_VER=1;

public Database(Context context) {
super(context, DB_NAME,null,DB_VER );
}

public List<OrderModel> getCarts(String userUid)
{
SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

String[] sqlSelect = {"UserUid","DenumireProdus" , "Cantitate" , "Pret"};
String sqlTable = "Comanda";

qb.setTables(sqlTable);
Cursor c = qb.query(db , sqlSelect , "UserUid=?",new String[]{userUid},null,null,null);

final List<OrderModel> result = new ArrayList<>();
if(c.moveToFirst())
{
do{
result.add(new OrderModel(
c.getString(c.getColumnIndex("UserUid")),
c.getString(c.getColumnIndex("DenumireProdus")),
c.getInt(c.getColumnIndex("Cantitate")),
c.getInt(c.getColumnIndex("Pret"))
));
}while (c.moveToNext());
}
return result;
}

public boolean checkFoodExists(String userUid , String denumireProdus)
{
boolean flag = false;
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = null;
String SQLQuery = String.format("SELECT * FROM Comanda WHERE UserUid='%s' AND DenumireProdus='%s'",userUid,denumireProdus);
cursor = db.rawQuery(SQLQuery,null);
if(cursor.getCount()>0)
flag = true;
else
flag = false;
cursor.close();
return false;
}
public void addToCart(OrderModel order)
{
SQLiteDatabase db = getReadableDatabase();
String query = String.format("INSERT OR REPLACE INTO Comanda(UserUid,DenumireProdus,Cantitate,Pret) VALUES('%s',%s','%s','%s');",
order.getUserUid(),
order.getDenumireProdus(),
order.getCantitate(),
order.getPret());
db.execSQL(query);
}

public void cleanCart(String userUid)
{
SQLiteDatabase db = getReadableDatabase();
String query = String.format("DELETE FROM Comanda WHERE UserUid='%s'",userUid);
db.execSQL(query);

}
public void removeFromCart(String userUid,String denumireProdus)
{
SQLiteDatabase db = getReadableDatabase();
String query = String.format("DELETE FROM Comanda WHERE UserUid='%s' AND DenumireProdus='%s'",userUid,denumireProdus);
db.execSQL(query);
}
public void increaseCart(String userUid,String denumireProdus)
{
SQLiteDatabase db = getReadableDatabase();
String query = String.format("UPDATE Comanda SET Cantitate= Cantitate+1 WHERE UserUid='%s' AND DenumireProdus='%s'",userUid,denumireProdus);
db.execSQL(query);
}
public int getCountCart(String userUid) {
int count = 0;
SQLiteDatabase db = getReadableDatabase();
String query = String.format("SELECT COUNT(*) FROM Comanda WHERE UserUid='%s'",userUid);
Cursor cursor =db.rawQuery(query,null);
if (cursor.moveToFirst())
{
do{
count = cursor.getInt(0);
}
while (cursor.moveToNext());
}
return count;

}
public int getItemCount(String denumireProdus , String userUid) {
int count = 0;
SQLiteDatabase db = getReadableDatabase();
String query = String.format("SELECT COUNT(*) FROM Comanda WHERE UserUid='s' AND DenumireProdus='%s' ",userUid,denumireProdus);
Cursor cursor =db.rawQuery(query,null);
if (cursor.moveToFirst())
{
do{
count = cursor.getInt(0);
}
while (cursor.moveToNext());
}
return count;

}
}

这是我收到的错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{Food}: android.database.sqlite.SQLiteException: no such column: UserUid (code 1 SQLITE_ERROR[1]): , while compiling: SELECT COUNT(*) FROM Comanda WHERE UserUid='QM9amP6CX4g24wrq7Hu2'

最佳答案

据我了解,错误消息表明您尚未将该列添加到表中。我对 Java 不太熟悉,但我会检查该列是否已创建并位于正确的表中。

关于java - 如何修复sqlite中的 "no such column",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57509434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com