0

我是 android 的新手,但现在在 Android 上做了更多的编码。现在我有一个疑问。我使用 Android 和 SQL Lte 创建了 android 数据库应用程序。但 SQL Lite 是客户端站点数据库。但现在我的要求是,我想要一个像 SQL Server 这样的数据库,以便将我的应用程序连接到 SQL Server。所以假设,考虑和举例,我知道 WCF。我创建了一个 WCF 服务,其功能类似于:我在 IIS 上托管 WCF,因为 android 不响应 localhost,所以我在 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";
}

}

我在本地主机中托管了 WCF,以便我可以在我的 Android 应用程序编码中使用此服务。

就像:

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 服务,该方法会将数据传递给移动客户端。我在上述描述或代码片段中没有看到该架构。

我建议您使用 oData WCF 数据服务将任何移动应用程序连接到 SQL Server。OData 服务是连接本地 SQL Server 或基于云的 RDBMS(即 SQL Azure)的快捷方式。

本文介绍了如何逐步进行操作,因此我建议您尝试一下,如果您遇到任何问题,请发帖到 SO,我们一定会帮助您:

大多数 Android 开发人员实际上更喜欢使用 JSON 的 WCF 从 Android 连接到 SQL Server/Azure,因此您当然也可以在这里查看

于 2012-05-31T01:00:28.560 回答