大家,我是初学者Android开发人员。我需要你的帮助。我想将数据插入SQLite Tblorder的2个表和OrderDTL。在OrderDTL上,我必须从ListView插入多个项目的数据。我尝试烤我想插入的所有变量。他们的全部出现。但是当我尝试保存它时。我得到这些错误。这是我的dbdatasource.java
public order createorder(String orderid, String notes, long outletid) {
ContentValues values = new ContentValues();
values.put(DBHelper.ORDER_ID, orderid); // inserting a string
values.put(DBHelper.NOTES, notes); // inserting an int
values.put(DBHelper.OUTLET_ID, outletid); // inserting an int
long insertId = database.insert(DBHelper.TABLE_ORDER, null,
values);
Cursor cursor = database.query(DBHelper.TABLE_ORDER,
allorder, DBHelper.ORDER_ID + " = " + insertId, null,
null, null, null);
cursor.moveToFirst();
order neworder = cursorToorder(cursor);
cursor.close();
return neworder;}
private order cursorToorder(Cursor cursor) {
order order = new order();
order.setorderid(cursor.getString(cursor.getColumnIndex(DBHelper.ORDER_ID)));
order.setorderdate(cursor.getString(cursor.getColumnIndex(DBHelper.ORDER_DATE)));
order.setnotes(cursor.getString(cursor.getColumnIndex(DBHelper.NOTES)));
order.setoutletid(cursor.getLong(cursor.getColumnIndex(DBHelper.OUTLET_ID)));
return order;
}
错误请参阅此代码
Cursor cursor = database.query(DBHelper.TABLE_ORDER,
allorder, DBHelper.ORDER_ID + " = " + insertId, null,
null, null, null);
和此代码
order.setorderid(cursor.getString(cursor.getColumnIndex(DBHelper.ORDER_ID)));
orderid是字符串,我尝试从yyyymmddhhmmss.
private String orderid(){
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyyMMddHHmmss", Locale.getDefault());
Date date = new Date();
return dateFormat.format(date);
}我会非常感谢您提供的任何帮助。
查询不匹配任何行。检查moveToFirst()
的结果以查看操作是否成功,然后访问光标数据。
示例:
order neworder = null;
if (cursor.moveToFirst()) {
order neworder = cursorToorder(cursor);
}
cursor.close();
return neworder;
您从insert()
获得的insertId
是该行的SQLite行ID。它可能与ORDER_ID
不同。要使列成为RowID的别名,请将其声明为INTEGER PRIMARY KEY
。
我在logcat中看到的错误无关_player_8,而是关于未知列" key_team_name"
问题在您的活动中,最后一条线:
String EntryA =String.valueOf( db.getentry("Ravirrrr", "KEY_Team_Name"));
应该是:
String EntryA =String.valueOf( db.getentry("Ravirrrr", DatabaseHandler.KEY_Team_Name));
和数据库Handler应该公开所有列名称,因为Getentry方法需要一个列名。
编辑:在下面的评论中添加答案。调用DB.Query后,您应该通过调用Cursor.isafterLast()检查是否获得了东西。如果为true,则选择返回一个空结果集。在您的示例中,您将获得一个空的结果集,因为代码以" Ravi"为团队名称创建条目,然后要求一个名为" Ravirrrr"的团队。