从Android中的SQLite向MySQL发送多行

时间:2014-07-30 18:11:32

标签: android mysql json sqlite

以下代码有什么问题?

我们的想法是从Android查询本地数据库(SQLite),从而获取此查询产生的数据,并通过JSON将它们发送到MySQL中的中央数据库。

我在这里的解决方案显然应该工作(即在SQLite中从本地数据库发送所有行)。

但实际上这不是发生的事情:它只发送到第一行。有人可以帮我这个吗?我很感激帮助。

        ControllerPontos datasource = new ControllerPontos(getApplicationContext());
        List<Pontos> pontosJogador = datasource.getRowsNotUploaded();
        Log.d("CARREGAMENTO LINHAS: ", "OK");

        if(pontosJogador.size() > 0) {
            for(Pontos linha : pontosJogador) {
                // listagem de elementos da query
                String log = "IDInscricao: "+linha.getIDInscricao()+" ,IDMissao: " + linha.getIDMissao() + " ,IDNivel: " + linha.getIDNivel() +
                     "IDTarefa: "+ linha.getIDTarefa()+"data: "+linha.getData()+"tempo: "+linha.getTempo()+"pontos: "+linha.getPontos();
                Log.d("LISTAGEM: ", log);

                idPontuacao = linha.getID();
                idInscricao = linha.getIDInscricao();
                idMissao = linha.getIDMissao();
                idNivel = linha.getIDNivel();
                idTarefa = linha.getIDTarefa();
                data = linha.getData();
                tempo = linha.getTempo();
                pontos = linha.getPontos();

                // vamos fazer o sincronismo linha a linha da tabela

                // parametros da lista
                Log.d("A CARREGAR ARRAYLIST", "Inicializar");
                ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("idInscricao", Integer.toBinaryString(idInscricao)));
                params.add(new BasicNameValuePair("idMissao", Integer.toBinaryString(idMissao)));
                params.add(new BasicNameValuePair("idNivel", Integer.toBinaryString(idNivel)));
                params.add(new BasicNameValuePair("idTarefa", Integer.toBinaryString(idTarefa)));
                params.add(new BasicNameValuePair("data", data));
                params.add(new BasicNameValuePair("tempo", Integer.toBinaryString(tempo)));
                params.add(new BasicNameValuePair("pontos", Integer.toBinaryString(pontos)));

                Log.d("ENVIO PONTOS", "Inicializar");

                // passagem dos dados para o script
                JSONObject json = jsonParser.makeHttpRequest(LOGIN_URL, "POST", params);

                // fazer update da tabela pontuacoes
                //datasource.updatePontos(idPontuacao);

                // resposta JSON
                Log.d("Tentar sincronizacao...", json.toString());

                try {
                    // verificacao do sucesso
                    sucesso = json.getInt(TAG_SUCESSO);
                    if(sucesso == 1) {
                        Log.d("Pontos adicionados!", json.toString());               
                        finish();
                        return json.getString(TAG_MENSAGEM);
                    }else{
                        Log.d("Envio de pontos falhou!", json.getString(TAG_MENSAGEM));
                        return json.getString(TAG_MENSAGEM); 
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }

            }// fecha FOR
        }
        else{
            Log.d("CARREGAMENTO LINHAS: ", "NAO HA LINHAS");
        }
        return null;
    } // fecha doInBackground

    /**
    * quando terminar o envio de dados vamos remover a caixa de dialogo
    * **/
    protected void onPostExecute(String file_url) {
        // dismiss the dialog once product deleted
        pDialog.dismiss();

        if (file_url != null){
            Toast.makeText(UploadDados.this, file_url, Toast.LENGTH_LONG).show();
        }
    }
}

0 个答案:

没有答案