gpt4 book ai didi

android - 不使用 ROW_ID 更新 SQL 数据库

转载 作者:行者123 更新时间:2023-11-30 22:54:58 25 4
gpt4 key购买 nike

如何在不使用 ROW_ID 的情况下创建 UPDATE 函数。出于某种原因,在 SQL 表中包含 ROW_ID 会给我多个错误。没有它,它工作得很好。我所需要的只是如何使用另一个约束更新中的 where 参数,例如假设,注册号

public class Work {

public static final String KEY_NAME = "name";
public static final String KEY_REG = "reg";
public static final String KEY_QUIZ1 = "q1";
public static final String KEY_QUIZ2 = "q2";
public static final String KEY_QUIZ3 = "q3";
public static final String KEY_CAT1 = "c1";
public static final String KEY_CAT2 = "c2";
public static final String KEY_TEE = "t";

private DbHelper ourHelper;
private final Context ourContext;
private static SQLiteDatabase ourDatabase;

private static final String DATABASE_NAME = "data";
private static final String DATABASE_TABLE = "stable";
private static final int DATABASE_VERSION = 1;

private static class DbHelper extends SQLiteOpenHelper{

public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
KEY_REG + " TEXT, " +
KEY_NAME + " TEXT, " +
KEY_QUIZ1 + " TEXT, " +
KEY_QUIZ2 + " TEXT, " +
KEY_QUIZ3 + " TEXT, " +
KEY_CAT1 + " TEXT, " +
KEY_CAT2 + " TEXT, " +
KEY_TEE + " TEXT);"

);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TBALE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
public Work(Context c){
ourContext = c;

}

public Work open() throws SQLException{
ourHelper = new DbHelper(ourContext);
ourDatabase = ourHelper.getWritableDatabase();
return this;

}
public void close(){
ourHelper.close();
}

public long createEntry(String string, String string2, String string3, String string4, String string5, String string6, String string7, String string8) {
// TODO Auto-generated method stub
ContentValues cv = new ContentValues();
cv.put(KEY_REG, string);
cv.put(KEY_NAME, string2);
cv.put(KEY_QUIZ1, string3);
cv.put(KEY_QUIZ2, string4);
cv.put(KEY_QUIZ3, string5);
cv.put(KEY_CAT1, string6);
cv.put(KEY_CAT2, string7);
cv.put(KEY_TEE, string8);
return ourDatabase.insert(DATABASE_TABLE, null, cv);

}

public String getq1(int j) {
// TODO Auto-generated method stub
int i=0;
String[] columns = new String[]{KEY_REG, KEY_NAME, KEY_QUIZ1, KEY_QUIZ2, KEY_QUIZ3, KEY_CAT1, KEY_CAT2, KEY_TEE};
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
String res = "";
int iQ1=c.getColumnIndex(KEY_QUIZ1);
for(c.moveToFirst();i<j && !c.isAfterLast();i++,c.moveToNext())
{}
res = c.getString(iQ1);
return res;
}

public String getq2(int j) {
// TODO Auto-generated method stub
int i=0;
String[] columns = new String[]{KEY_REG, KEY_NAME, KEY_QUIZ1, KEY_QUIZ2, KEY_QUIZ3, KEY_CAT1, KEY_CAT2, KEY_TEE};
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
String res = "";

int iQ1=c.getColumnIndex(KEY_QUIZ2);
for(c.moveToFirst();i<j && !c.isAfterLast();i++,c.moveToNext())
{}
res = c.getString(iQ1);
return res;
}

public String getq3(int j) {
// TODO Auto-generated method stub
int i=0;
String[] columns = new String[]{KEY_REG, KEY_NAME, KEY_QUIZ1, KEY_QUIZ2, KEY_QUIZ3, KEY_CAT1, KEY_CAT2, KEY_TEE};
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
String res = "";

int iQ1=c.getColumnIndex(KEY_QUIZ3);
for(c.moveToFirst();i<j && !c.isAfterLast();i++,c.moveToNext())
{}
res = c.getString(iQ1);
return res;
}

public String getc1(int j) {
// TODO Auto-generated method stub
int i=0;
String[] columns = new String[]{ KEY_REG, KEY_NAME, KEY_QUIZ1, KEY_QUIZ2, KEY_QUIZ3, KEY_CAT1, KEY_CAT2, KEY_TEE};
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
String res = "";

int iQ1=c.getColumnIndex(KEY_CAT1);
for(c.moveToFirst();i<j && !c.isAfterLast();i++,c.moveToNext())
{}
res = c.getString(iQ1);
return res;
}

public String getc2(int j) {
// TODO Auto-generated method stub
int i=0;
String[] columns = new String[]{ KEY_REG, KEY_NAME, KEY_QUIZ1, KEY_QUIZ2, KEY_QUIZ3, KEY_CAT1, KEY_CAT2, KEY_TEE};
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
String res = "";

int iQ1=c.getColumnIndex(KEY_CAT2);
for(c.moveToFirst();i<j && !c.isAfterLast();i++,c.moveToNext())
{}
res = c.getString(iQ1);
return res;
}

public String gette(int j) {
// TODO Auto-generated method stub
int i=0;
String[] columns = new String[]{KEY_REG, KEY_NAME, KEY_QUIZ1, KEY_QUIZ2, KEY_QUIZ3, KEY_CAT1, KEY_CAT2, KEY_TEE};
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
String res = "";
int iQ1=c.getColumnIndex(KEY_TEE);
for(c.moveToFirst();i<j && !c.isAfterLast();i++,c.moveToNext())
{}
res = c.getString(iQ1);
return res;
}

public String getData() {
// TODO Auto-generated method stub
String[] columns = new String[]{KEY_REG, KEY_NAME, KEY_QUIZ1, KEY_QUIZ2, KEY_QUIZ3, KEY_CAT1, KEY_CAT2, KEY_TEE};
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
String res = "";
int ireg=c.getColumnIndex(KEY_REG);
int ina=c.getColumnIndex(KEY_NAME);
int iQ1=c.getColumnIndex(KEY_QUIZ1);
int iQ2=c.getColumnIndex(KEY_QUIZ2);
int iQ3=c.getColumnIndex(KEY_QUIZ3);
int ic1=c.getColumnIndex(KEY_CAT1);
int ic2=c.getColumnIndex(KEY_CAT2);
int it=c.getColumnIndex(KEY_TEE);

for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext())
{
res+=c.getString(ireg)+" "+c.getString(ina)+" "+c.getString(iQ1)+" "+c.getString(iQ2)+" "+c.getString(iQ3)+" "+c.getString(ic1)+" "+c.getString(ic2)+" "+c.getString(it)+"\n";
}

return res;
}



public void updateEntry(int j, String g1, String g2, String g3, String g4,
String g5, String g6) {
// TODO Auto-generated method stub

ContentValues cvup= new ContentValues();
cvup.put(KEY_QUIZ1, g1);
cvup.put(KEY_QUIZ2, g2);
cvup.put(KEY_QUIZ3, g3);
cvup.put(KEY_CAT1, g4);
cvup.put(KEY_CAT2, g5);
cvup.put(KEY_TEE, g6);
ourDatabase.update(DATABASE_TABLE, cvup, WHERE, null);

}

最佳答案

更新语句的 WHERE 子句在哪里

ourDatabase.update(DATABASE_TABLE, cvup, WHERE, null);

给你一个示例更新子句:

public boolean updateContact (Integer id, String name, String phone, String email)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("name", name);
contentValues.put("phone", phone);
contentValues.put("email", email);

db.update("contacts", contentValues, "id = ? ", new String[] { Integer.toString(id) } );
return true;
}

参见 here .

更新使用

private static final String DATABASE_NAME = "data.db"; //You forgot .db

关于android - 不使用 ROW_ID 更新 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26814784/

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