0

私はアンドロイドは初めてですが、今ではAndroidでより多くのコーディングを行っています。今、疑問があります。Android と SQL Lte を使用して Android データベース アプリケーションを作成しました。しかし、SQL Lite はクライアント サイト データベースです。しかし今、私の要件は、アプリケーションを SQL Server に接続するために、SQL Server のようなデータベースが欲しいということです。たとえば、考えてみましょう。私は WCF について知っています。次のような機能を持つWCFサービスを作成します。Androidがlocalhostに応答しないため、IISでWCFをホストしたので、IISでWCFをホストしました

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";
}

}

このサービスを Android アプリケーションのコーディングで使用できるように、ローカル ホストで WCF をホストしました。

と同じように:

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 から文字列形式で結果を取得するにはどうすればよいでしょうか?

4

1 に答える 1

0

上記のコードに基づいて、モバイル クライアント アプリ、WCF、および SQL Server をどのように視野に入れるかわかりません。基本的な設計は、WCF サービスが内部的に SQL Azure と通信し、データを収集することです。モバイル クライアントは、公開されたメソッドで WCF サービスに接続するだけで、メソッドはデータをモバイル クライアントに渡します。上記の説明またはコード スニペットには、そのアーキテクチャが表示されません。

モバイル アプリケーションを SQL Server に接続するには、oData WCF Data Services を使用することをお勧めします。OData サービスは、オンプレミスの SQL Server またはクラウド ベースの RDBMS、つまり SQL Azure に接続するための高速かつ簡単な方法です。

この記事では、それを行う方法を段階的に説明しているので、試してみることをお勧めします。問題が発生した場合は、SO に投稿してください。

ほとんどの Android 開発者は、JSON を使用して Android から SQL Server/Azure に接続するために実際に WCF を好むので、こちらもご覧ください

于 2012-05-31T01:00:28.560 に答える