私はアンドロイドで次のコードを持っています:
protected void onPostExecute(ResultSet rsData)
{
try
{
int size=0;
while(rsData.next())
{
size++;
}
mlst = new String[size];
int i=0;
while(rsData.next())
{
String mid = rsData.getString(rsData.findColumn("mid"));
String uid = rsData.getString(rsData.findColumn("uid"));
String messages = rsData.getString(rsData.findColumn("message"));
String read=rsData.getString(rsData.findColumn("rstamp"));
mdb.addMessage(new Contact(mid, uid, messages, read));
mlst[i]=mid;
i++;
}
con.UpdateMessage(mlst);
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
これで、各行にデバッガーを保持しました。
最初の while ループのサイズの値が 7 になることがわかりました。
rsData ResultSet に 7 行あることを意味します。
しかし、2 番目の while ループになるとすぐに、突然 while ループに入らず、制御は直接 line に移動します。con.UpdateMessage(mlst);
なぜそうなるのか理解できませんか?
結果セットに7行ある場合、7回入力する必要がありますが、1回入力しません。
私を助けてください。