Android-Java应用程序与.netweb服务的通信
我是stackoverflow的新手,但我总是从别人的问题中找到我需要的答案。这一次,我没有这样的运气 我正在开发一个与.NETWeb服务通信的android应用程序。代码看起来很好,但是我确信有些地方出了问题,因为结果不是我所需要的 我在下面的web服务中有一个登录方法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;
[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);
}
}
}