Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android--SQL Server连接错误_Android_Sql Server_Wcf - Fatal编程技术网

Android--SQL Server连接错误

Android--SQL Server连接错误,android,sql-server,wcf,Android,Sql Server,Wcf,我对安卓系统还不熟悉,但现在我用安卓系统做了更多的编码。现在我有一个疑问。我使用android和SQL Lte创建了android数据库应用程序。但SQLLite是客户端站点数据库。但现在我的要求是,我想要一个像SQL Server这样的数据库,以便将我的应用程序连接到SQL Server。所以,假设,考虑和例子,我知道WCF。我创建了一个WCF服务,其功能如下: 我在IIS上托管了WCF,因为android不响应localhost,所以我在IIS上托管了WCF Public string ch

我对安卓系统还不熟悉,但现在我用安卓系统做了更多的编码。现在我有一个疑问。我使用android和SQL Lte创建了android数据库应用程序。但SQLLite是客户端站点数据库。但现在我的要求是,我想要一个像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中获得字符串格式的结果呢?

基于上述代码,我不确定如何看待移动客户端应用程序、WCF和SQL Server。基本设计是,WCF服务将在内部与SQLAzure对话,并为您的应用程序收集数据。您的移动客户端将只在公开的方法连接到WCF服务,该方法将数据传递给移动客户端。我在上面的描述或代码片段中没有看到这种体系结构

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

这说明了如何一步一步地做,因此我建议您尝试一下,如果您遇到任何问题,请发邮件到so,我们肯定会帮助您:


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

好的,我将尝试您的链接。但我的情况是,我想将我的android应用程序连接到SQL Server。作为一名.Net开发人员,我非常了解WCF和Web服务的概念。我已经听说,如果我们想将Android应用程序连接到SQL Server,我们必须使用web服务或WCF。所以我从.Net(即Visual Studio 2010)创建了WCF服务。你完全正确,我同意使用WCF,所以我建议使用oData WCF服务来编写一个示例应用程序,我花了大约30分钟。