gpt4 book ai didi

android - 无法从动态创建的 sqlite 表'列中检索单个字符串数据并导致 "Index 0 requested, with a size of 0"

转载 作者:行者123 更新时间:2023-11-29 19:16:58 25 4
gpt4 key购买 nike

但是当动态创建的表和选择查询在同一方法中时,我可以检索字符串数据。

动态创建Table helper.classhomework(tablename,dateString);

public void classhomework(String tablename,String date){

String COLUMN_ID="S.No";

String COLUMN_SUBJECT1="subject1";

String COLUMN_SUBJECT2="subject2";

String COLUMN_SUBJECT3="subject3";

String COLUMN_dATE="date";

ContentValues insertValues = new ContentValues();
SQLiteDatabase db = getWritableDatabase();
db.execSQL("CREATE TABLE IF NOT EXISTS "+ tablename+ "( " +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_SUBJECT1 + " TEXT, " +
COLUMN_SUBJECT2 + " TEXT, " +
COLUMN_SUBJECT3 + " TEXT, " +
COLUMN_dATE + " TEXT " +
");");
insertValues.put(COLUMN_SUBJECT1,"Not updated ");
insertValues.put(COLUMN_SUBJECT2,"Not updated ");
insertValues.put(COLUMN_SUBJECT3,"Not updated ");
insertValues.put(COLUMN_dATE,date);

db.insert(tablename,null,insertValues);
db.close();
}

调用选择查询方法

String homeworkdetails=helper.gethomework(dateString,tablename,subjtxt);

选择查询方式

    public String gethomework(String date,String tablename,String subject){

String COLUMN_dATE="date";

SQLiteDatabase db = getWritableDatabase();

String homeworkcontent = null;
Cursor cur=db.query(tablename,new String[]{subject},COLUMN_dATE+"=?",new String[]{String.valueOf(date)},null,null,null,null);
if(cur!=null){
cur.moveToFirst();
homeworkcontent =cur.getString(0);//**CursorIndexOutOfBoundsException**
}cur.close();
db.close();
return homeworkcontent;

但在该方法内创建表时返回值。

调用更新查询

helper.updatehomework(dateString,homeworksubmt,subjectname,tabname)

更新查询

    public boolean updatehomework(String date,String homework,String subject,String table ){
try{ContentValues updateValues = new ContentValues();
SQLiteDatabase db = getWritableDatabase();
updateValues.put(subject,homework);
db.update(table,updateValues,"date =?",new String[]{date});
return true;

}catch (Exception me){
me.printStackTrace();
}return false;
}

值已成功更新。

验证了所有表名称的用法。

最佳答案

出现此错误是因为您的光标没有行。您必须检查尺寸条件。

if(cur!=null  && cur..getCount() > 0)
{
......
}

关于android - 无法从动态创建的 sqlite 表'列中检索单个字符串数据并导致 "Index 0 requested, with a size of 0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42632048/

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