Я создаю приложение для Android, которое использует данные SQL.Все строки извлекаются (10 строк), когда я запускаю (CODE1) в основной деятельности.Только первые 4 строки отображаются, когда я помещаю код в класс AsyncTask как часть метода onPOstExecute (CODE2).Исключение показывает пустую строку после 4-й строки.
CODE1
if (con == null) {
zES = "Error in connection with SQL server";
} else {
String queryFE = "SELECT * FROM executed_steps where Batch_No ='" + rBatch_No + "'";
try {
PreparedStatement ps = con.prepareStatement(queryFE);
result_rs_ES = ps.executeQuery();
} catch (Exception ex) {
result_rs_ES = null;
}
}
if (result_rs_ES == null) {
Toast.makeText(getApplication(), "No Batch Found"+zES, Toast.LENGTH_SHORT).show();
} else {
try {
while (result_rs_ES.next()) {
rStep_Id = result_rs_ES.getString("Step_Id");
}
} catch (Exception e) {
}
CODE2 Это AsyncTask
private class FindExecutedStepsAsyncTask extends AsyncTask<String,Void,ResultSet > {
String result_ES,zES;
ResultSet result_rs_ES;
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected ResultSet doInBackground(String... params) {
zES=params[0];
Connection con = connectionClass.CONN();
if (con == null) {
zES = "Error in connection with SQL server";
} else {
String queryFE = "SELECT * FROM executed_steps where Batch_No ='"+zES+"'";
try {
PreparedStatement ps = con.prepareStatement(queryFE);
result_rs_ES = ps.executeQuery();
} catch (Exception ex) {
result_rs_ES=null;
}
}
return result_rs_ES;
}
@Override
protected void onPostExecute(ResultSet mresult_rs_ES) {
passdatasteps(mresult_rs_ES);
}
}
private void passdatasteps(ResultSet mresult_rs_ES) {
if (mresult_rs_ES == null) {
Toast.makeText(getApplication(), "No Batch Found", Toast.LENGTH_LONG).show();
} else {
try {
while (mresult_rs_ES.next()) {
rStep_Id = mresult_rs_ES.getString("Step_Id")
}
}
catch (Exception e) {
}
}