2012-12-17 71 views
1

我有一個名爲menu.db的數據庫文件,並且此文件位於服務器中,現在我想從此數據庫讀取數據。 我也有我正在使用的應用程序的註冊頁面,因爲用戶按提交按鈕,然後所有的用戶信息應該存儲在服務器上的該數據庫。 如果有人解決了這個問題,那麼請幫助我。從位於服務器的數據庫讀取數據android

如果有人知道,那麼請幫助我。

+0

的數據庫,你處理?它是SQLite嗎? – Chaitanya

+0

是的,我正在使用SQLite。 – varun

+0

是否要訪問位於遠程服務器上的數據庫?然後,我認爲最好的方法是在數據庫之上構建一些Web服務,並從您的Android應用程序到Web服務器建立http連接。 –

回答

0

我有以下代碼。它認證用戶密碼。你應該在AsyncTask擴展類的doBackground()中調用這個方法。

public boolean authenticate(String strUsername, String strPassword) 
{ 
    boolean bReturn = false; 

    InputStream pInputStream = null; 
    ArrayList<NameValuePair> pNameValuePairs = new ArrayList<NameValuePair>(); 
    pNameValuePairs.add(new BasicNameValuePair("userid", strUsername)); 
    pNameValuePairs.add(new BasicNameValuePair("password", strPassword)); 

    try 
    { 
     HttpClient pHttpClient = new DefaultHttpClient(); 

     String strURL = p_strServerIP + "Login.php"; 
     HttpPost pHttpPost = new HttpPost(strURL); 
     pHttpPost.setEntity(new UrlEncodedFormEntity(pNameValuePairs)); 

     HttpResponse pHttpResponse = pHttpClient.execute(pHttpPost); 
     HttpEntity pHttpEntity = pHttpResponse.getEntity(); 
     pInputStream = pHttpEntity.getContent(); 

     BufferedReader pBufferedReader = new BufferedReader(new InputStreamReader(pInputStream,"iso-8859-1"),8); 

     StringBuilder pStringBuilder = new StringBuilder(); 
     String strLine = pBufferedReader.readLine(); 
     pInputStream.close(); 
     if(strLine != null) 
     { 
      if((strLine).equals("permit")) 
      { 
       bReturn = true; 
      } 
     } 
    } 
    catch (Exception e) 
    { 
     Log.e("log_tag", "Caught Exception @ authenticate(String strUsername, String strPassword):" + e.toString()); 
    } 

    return bReturn; 
} 

您的AsyncTask擴展的類應該是這樣的

class ConnectionTask extends AsyncTask<String, Void, Boolean> 
{ 
    private SharedPreferences mSettings; 
    private Context mContext; 
    ConnectionTask(SharedPreferences settings, Context context) 
    { 
     mSettings = settings; 
     mContext = context; 
    } 

    protected void onProgressUpdate(Integer... progress) 
    { 
    } 

    protected void onPostExecute(Boolean result) 
    { 
     Toast.makeText(mContext, "Authentication over.", Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    protected Boolean doInBackground(String... params) 
    { 
     pVerifier.authenticate(params[0], params[1]); 
     return true; 
    } 
} 
+0

感謝代碼的和平我已經完成了認證部分只有挑戰的一部分是,在服務器打開數據庫從那裏讀取記錄,如果可能的話也輸入新記錄。 – varun

+0

您使用哪種語言的Web服務? –

+0

我使用java作爲語言SqLite作爲數據庫。 – varun

相關問題