Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.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-Java应用程序与.netweb服务的通信_Android_.net_Web Services_Soap_Communication - Fatal编程技术网

Android-Java应用程序与.netweb服务的通信

Android-Java应用程序与.netweb服务的通信,android,.net,web-services,soap,communication,Android,.net,Web Services,Soap,Communication,我是stackoverflow的新手,但我总是从别人的问题中找到我需要的答案。这一次,我没有这样的运气 我正在开发一个与.NETWeb服务通信的android应用程序。代码看起来很好,但是我确信有些地方出了问题,因为结果不是我所需要的 我在下面的web服务中有一个登录方法 [WebMethod] public String login(String username, String password) { SqlConnection conn = null;

我是stackoverflow的新手,但我总是从别人的问题中找到我需要的答案。这一次,我没有这样的运气

我正在开发一个与.NETWeb服务通信的android应用程序。代码看起来很好,但是我确信有些地方出了问题,因为结果不是我所需要的

我在下面的web服务中有一个登录方法

[WebMethod]
    public String login(String username, String password)
    {
        SqlConnection conn = null;
        DataSet dataset = null;
        SqlDataAdapter adapter = null; ;
        try
        {
            conn = new SqlConnection("Server=localhost; Database=Senior; Trusted_Connection=True");
            dataset = new DataSet();
            adapter = new SqlDataAdapter();
            adapter.SelectCommand = new SqlCommand();
            adapter.SelectCommand.Connection = conn;
            adapter.SelectCommand.CommandText = "SELECT Username, Password FROM Employee";
            adapter.Fill(dataset, "employees");
                String user, pass;
                for (int i = 0; i < dataset.Tables["employees"].Rows.Count; i++)
                {
                    user = dataset.Tables["employees"].Rows[i]["Username"].ToString();
                    pass = dataset.Tables["employees"].Rows[i]["Password"].ToString();
                    if (user == username && pass == password)
                        return "Login Successful";
                }
            }
            catch (Exception ex)
            {
            }
            adapter.Dispose();
            conn.Close();
            return "Login Failed"
    }
但是,此方法始终将et1和EditText组件设置为登录失败

我已经在一个常规的非web服务应用程序中测试了我的代码,结果很好


非常感谢您的帮助。

在Java中,您不应该使用==来比较字符串。String是一个对象,并且==测试两个对象是否是同一个对象。由于字符串实习,这可能是真的,也可能不是真的。相反,使用equals方法测试内容。ifanswer.equalsLogin成功。但这并不能解决您的问题。一些观察结果。在C方法中,应该使用using和参数化查询。您的SQL应该类似于从雇员中选择*,其中username=@username和password=@password。然后测试结果集是否有行`。我修复了它。结果表明,IIS在使用受信任连接时会更改默认登录凭据。解决方案是:1-打开IIS 2-从左侧列表中展开连接3-单击应用程序池4-单击DefaultAppPool 5-单击高级设置。。。从右侧的操作6-向下滚动至流程模型7-打开标识8-选择自定义帐户:9-单击用户名字段中的设置10添加您的计算机名您当前的用户名,并在密码字段中添加您的用户密码。
void result()
{
    if (echosoap.myResult != null)
    {
        String answer = echosoap.myResult.toString();
        et1.setText(answer);
        if(answer=="Login Successful")
        {
            Intent intent = new Intent(MainActivity.this, DefaultWindow.class);
            startActivity(intent);
        }
    }
}