2012-05-30 2 views
0

Я новичок в android, но теперь дни сделали намного больше кодирования в Android. Теперь у меня есть сомнения. Я создал приложение базы данных Android с помощью Android и SQL Lte. Но SQL Lite - это база данных клиентских сайтов. Но теперь мое требование: я хочу базу данных, такую ​​как SQL Server, чтобы подключить мое приложение к SQL Server. Так что предположим, рассмотрим и, например, я знаю о WCF. Я создать службу WCF, которые имеют функцию так же, как: Я принимал WCF на IIS, потому что андроид не ответ локальный, поэтому я принимал WCF на IISAndroid - ошибка подключения к SQL Server

Public string check(string username,string password) 

{ 

SQLConnection con=new SQLConnection("Data Source=.;Database=test;Integrated Security=true"); 

SQLDataAdapeter ad=new SQLDataAdapter("select * from table where usrename='"+username+"'and password='"+password+"'"); 

Dataset ds=new Dataset(); 

ad.fill(ds,"table"); 

if(ds.Tables[0].Rows.Count>0) 
{ 
    return "true"; 
} 
else 
{ 
return "false"; 
} 

} 

Я принимал WCF в моем локальном хосте, так что я могу использовать эту услугу в кодировке My Android Application.

так же, как:

HttpGet httpGet=new HttpGet("http://192.168.1.111:8083/Service1.svc/checkLogin?username="+UserName+"&password="+Password); 

     //Get the response 
     HttpResponse httpResponse = httpClient.execute(httpGet); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     InputStream stream=httpEntity.getContent(); 

Однако здесь я не получаю какой-либо httpEntity хотя код правильный. Я принимаю эту сущность и хочу, чтобы преобразовать его в строку с помощью функции, как:

public static String convertStreamToString(InputStream is) 
{ 
    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
    StringBuilder sb = new StringBuilder(); 

    String line = null; 
    try { 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 
    finally { 
     try { 
      is.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
    return sb.toString(); 
} 

однако, не возвращает значение строки, отладчик переходит на точке пересечения. Итак, что я могу сделать, чтобы получить результат в формате строки из моего WCF?

ответ

0

Основываясь на вышеприведенном коде, я не уверен, как вы ставите приложение мобильного клиента, WCF и SQL Server в перспективе. Основной дизайн заключается в том, что служба WCF будет внутренне разговаривать с SQL Azure и собирать данные для вашего. Вы, мобильный клиент, просто подключаетесь к службе WCF при открытом методе, и этот метод передает данные мобильному клиенту. Я не вижу эту архитектуру в описании выше или фрагменте кода.

Я предлагаю вам использовать oData WCF Data Services для подключения любого мобильного приложения к SQL Server. Службы OData - это быстрый и простой способ подключения на основе SQL Server или облачных RDBMS, то есть SQL Azure.

Это article объясняет, как это сделать шаг за шагом, так что я бы предложил попробовать его, и если вы встретили какие-либо проблемы, после так и мы уверены, поможет вам:

Большинство разработчиков Android на самом деле предпочитают WCF с помощью JSON для подключения с Android на SQL Server/Azure, так что вы также можете посмотреть here.

+0

Хорошо, я попробую ваши ссылки. Но мой сценарий заключается в том, что я хочу подключить свое приложение Android к SQL Server. Поскольку я - разработчик .Net, я хорошо знаю о WCF и концепциях веб-сервиса. И я уже слышал, что если мы хотим подключить наше Android-приложение к SQL Server, мы должны использовать веб-службу или WCF. Поэтому я создал службу WCF из .Net, т.е. из Visual Studio 2010. – siddhesh

+0

Вы абсолютно правы, и я согласен использовать WCF, поэтому я бы предложил использовать oData WCF Services, чтобы написать пример приложения, для меня это заняло около 30 минут , – AvkashChauhan

+0

Хорошо, я попробую. Спасибо заранее. – siddhesh

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