2012-12-17 54 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

相关问题