如何在后台访问预执行数据



我在预执行值中获取一个数据库并在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()

最新更新