2012-12-17 6 views
1

У меня есть один файл базы данных, имя которого - menu.db, и этот файл находится на сервере, теперь я хочу читать данные из этой базы данных. У меня также есть страница регистрации в приложении, над которым я работаю, когда пользователь нажимает кнопку отправки, тогда вся информация пользователя должна храниться в этой базе данных на сервере. Если кто-то решил эту проблему, тогда, пожалуйста, помогите мне.Чтение данных из базы данных, расположенной на сервере в android

Если кто-нибудь знает, пожалуйста, помогите мне.

+0

Какие базы данных вы имеете дело? Это SQLite? – Chaitanya

+0

Да, я использую SQLite. – varun

+0

Вы хотите получить доступ к базе данных, которая находится на удаленном сервере? Тогда я думаю, что лучший способ - создать некоторые веб-службы поверх базы данных и сделать http-соединение с вашим приложением Android на веб-сервере. –

ответ

0

У меня есть следующий код. Он аутентифицирует пароль пользователя. вы должны вызвать этот метод внутри doBackground() расширенного класса AsyncTask.

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

Какой язык вы используете для веб-сервисов? –

+0

Я использую java как язык SqLite как базу данных. – varun

Смежные вопросы