我在预执行值中获取一个数据库并在spinner中显示值。在doinbackground线程我想在sqlite表中插入旋转器值,我知道我不能在doinbackground中使用ui组件。期待你的帮助。这是我的预执行值
try {
statement = connect.prepareStatement("exec dbo.getSalesIdtest;");
} catch (SQLException e) {
Log.e("Error 1 here: ", e.getMessage());
}
try {
rs = statement.executeQuery();
} catch (SQLException ex) {
Log.e("error 2 here: ", ex.getMessage());
}
try {
while(rs.next()) {
TextView generateData = (TextView) findViewById(R.id.getOrderid);
pab = rs.getString("CurrentNo");
generateData.setText(pab);
Log.e(pab,"Message here is");
boolean isInserted = orderDB.insertorderData(rs.getString("CurrentNo"));
if (isInserted == true)
Toast.makeText(orderChalan.this, "Data save successfully", Toast.LENGTH_LONG).show();
else
Toast.makeText(orderChalan.this, "Data not Inserted", Toast.LENGTH_LONG).show();
这里是我的doinbackground
中的代码if (con == null) {
z = "Check Your Internet Access!";
} else {
String query = "insert into dbo.slsOrderD(osdSalesID,osdProductID,osdQty)values('joy','" + getRata.getString(1).toString() + "','" + getRata.getString(2).toString() + "');";
PreparedStatement preparedStatement = con.prepareStatement(query);
preparedStatement.executeUpdate();
z = "New client's data added successfully";
isSuccess = true;
}
} catch (Exception ex) {
isSuccess = false;
z = "Exceptions";
Log.e("ERRO", ex.getMessage());
}
在插入语句中,我必须从预执行微调器元素访问数据,如何解决这个问题?
如果你在onPreExecute()中声明你要更新的变量作为类成员继承的Asynctask版本,那么你应该能够从doInBackground()访问它们。
从我看到你是声明他们作为局部变量在OnPreExecute()