Android java.sql.SQLException:无法在对象上运行insert stmt
我一直在尝试向数据库中插入一条记录,但它在Android中不起作用,尽管我以前做过。这是我第一次在ORMLite中使用多个表 这就是我想做的: 将数据从XML存储到模型中 然后尝试从模型中插入数据 使用的数据库:SQLite 奥姆莱特 活动类Android java.sql.SQLException:无法在对象上运行insert stmt,android,sqlite,ormlite,Android,Sqlite,Ormlite,我一直在尝试向数据库中插入一条记录,但它在Android中不起作用,尽管我以前做过。这是我第一次在ORMLite中使用多个表 这就是我想做的: 将数据从XML存储到模型中 然后尝试从模型中插入数据 使用的数据库:SQLite 奥姆莱特 活动类 TbDriverInfoBO tbDriverInfoBO = new TbDriverInfoBO(); Document doc = XMLfunctions.XMLfromString(strResult); NodeList nodes = doc
TbDriverInfoBO tbDriverInfoBO = new TbDriverInfoBO();
Document doc = XMLfunctions.XMLfromString(strResult);
NodeList nodes = doc.getElementsByTagName("root");
Element root = (Element) nodes.item(0);
jabongModel.setLoginId(XMLfunctions.getValue(root, "UserId"));
jabongModel.setPassword(XMLfunctions.getValue(root, "UserPwd"));
jabongModel.setDrsno(XMLfunctions.getValue(root, "DRSNo"));
jabongModel.setBrancode(XMLfunctions.getValue(root, "BranchCode"));
jabongModel.setLoginDate(XMLfunctions.getValue(root, "LoginDate"));
//clsDriverInfo obj = new clsDriverInfo(loginId, pswd, drsno,
/*tbDriverInfoBO.setColUserId(jabongModel.getLoginId());
tbDriverInfoBO.setColPwd(jabongModel.getPassword());
tbDriverInfoBO.setColDrs(jabongModel.getDrsno());
tbDriverInfoBO.setColBranch(jabongModel.getBrancode());*/
tbDriverInfoBO.fillBo(jabongModel);
dbHelperTbDriverInfo.addData(tbDriverInfoBO);
中银级:
public class TbDriverInfoBO {
@DatabaseField(generatedId = true)
int id;
@DatabaseField
String colUserId;
...
// getters and setters
public TbDriverInfoBO(String colUserId, String colPwd, String colDrs, String colBranch)
{
this.colBranch = colBranch;
this.colDrs = colDrs;
this.colPwd = colPwd;
this.colUserId = colUserId;
}
public TbDriverInfoBO() {
// TODO Auto-generated constructor stub
}
public void fillBo(JabongModel jabongModel)
{
this.colBranch = jabongModel.getBrancode();
this.colDrs = jabongModel.getDrsno();
this.colPwd = jabongModel.getPassword();
this.colUserId = jabongModel.getLoginId();
//this.id = jabongModel.getId();
}
}
DBHelperClass
public int addData(TbDriverInfoBO tbDriverInfoBO) {
int i=0;
RuntimeExceptionDao<TbDriverInfoBO, String> dao = getTbDriverInfoDaO();
try{
i = dao.create(tbDriverInfoBO);
}
catch (Exception e) {
e.getStackTrace();// TODO: handle exception
}
return i;
}
在我看来,您没有为tbdriverinfobo
创建表
sqlite returned: error code = 1, msg = no such table: tbdriverinfobo
能否在帮助程序中显示
onCreate()
方法?您的应用程序是否有一个现有的数据库,并且您后来添加了这个表?是否需要增加数据库版本号?由于创建了数据库和表,因此出现此错误
在你想要新桌子之前
tbDriverInfoBO(这是您的新桌子)
ORMLite库正在抛出类似“找不到表tbDriverInfoBO…”之类的异常。。所以你们需要从手机上卸载你们的移动应用程序,然后你们应该把所有的表类写到onCreate方法中,就像下面的代码一样
@Override
public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
try {
TableUtils.createTable(connectionSource, Table1.class);
TableUtils.createTable(connectionSource, Table2.class);
TableUtils.createTable(connectionSource, Table3.class);
TableUtils.createTable(connectionSource, Table4.class);
TableUtils.createTable(connectionSource, Table5.class);//you must add all your table class
TableUtils.createTable(connectionSource, TableN.class);
} catch (SQLException e) {
e.printStackTrace();
}
}
添加所有表类后,您可以将数据添加到本地表
我希望我的回答能帮助别人。。。快乐编码我添加了堆栈跟踪。但我正在为每个表创建DBHelper类。同样在触发此查询之前,我正在查询视图表,但由于视图表中不存在任何记录,所以我无法从中获取任何记录。稍后我查询这个TBDriverInfo表。有人请帮忙。。。这里的紧急人员正在免费帮助你,同时他们也有事情要做,所以请避免“这很紧急”的评论。我看你的stacktrace没有任何异常。发布SQLException.in onCreate的stacktrace,我必须调用createIfTableDoesNotExist,而不是createTable。我知道,它对我很管用。尽管我必须在所有dbhelper类中插入数据之前显式调用它。我以前使用过它,但在插入数据之前从未显式调用过它。我想知道为什么会有这样的行为。
@Override
public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
try {
TableUtils.createTable(connectionSource, Table1.class);
TableUtils.createTable(connectionSource, Table2.class);
TableUtils.createTable(connectionSource, Table3.class);
TableUtils.createTable(connectionSource, Table4.class);
TableUtils.createTable(connectionSource, Table5.class);//you must add all your table class
TableUtils.createTable(connectionSource, TableN.class);
} catch (SQLException e) {
e.printStackTrace();
}
}