Я создаю простой модуль входа в систему.Во время завершения и тестирования я заметил, что была проблема с сервером WCF и связью Android.Проблема в том, что вход в систему происходит случайно.Я искал переполнение стека msdn и так далее, но мне трудно найти ответ.Пожалуйста, помогите мне.
Service1.svc.cs
public bool LogIn(string id, string pw)
{
GEODB db = new GEODB();
return db.LogIn(id, pw);
}
IService1.cs
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "LogIn", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
bool LogIn(string id, string pw);
GEODB.cs
public bool LogIn(string id, string pw)
{
string strSQL = string.Empty;
if (id[0].Equals('S'))
{
strSQL = "select * from Student where scode = replace('" + id + "', ' ', '') and spw = '" + pw + "'";
idFlag = "S";
}
else if (id[0].Equals('P'))
{
strSQL = "select * from parents where pid = replace('" + id + "', ' ', '') and pwd = '" + pw + "'";
idFlag = "P";
}
else if (id[0].Equals('T'))
{
strSQL = "select * from teacher where tid = replace('" + id + "', ' ', '') and tpw = '" + pw + "'";
idFlag = "T";
}
else if (id[0].Equals(null))
{
return false;
}
SqlCommand cmd = new SqlCommand(strSQL, conn);
return LogIn_ReadQuery(cmd);
}
private bool LogIn_ReadQuery(SqlCommand cmd)
{
try
{
string id = null;
SqlDataReader myDataReader = cmd.ExecuteReader();
while (myDataReader.Read())
{
if (idFlag == "S")
id = myDataReader["sid"].ToString();
else if (idFlag == "P")
id = myDataReader["pid"].ToString();
else if (idFlag == "T")
id = myDataReader["tid"].ToString();
else if (idFlag == "N") { return false; }
}
idFlag = string.Empty;
myDataReader.Close();
cmd.Dispose();
if (id != null) { return true; } else { return false; }
}
catch (Exception) {return false;}
}
Android logcat
05-08 12:12:15.409 950-1425/? E/Watchdog: !@Sync 364
05-08 12:12:12.469 384-384/? E/SMD: DCD ON
05-08 12:12:19.879 950-2374/? E/SAMP_SPCMtest: setPackageLockingTimeBySPCM() :72
05-08 12:12:20.949 950-1137/? E/ActivityManager: checkUser: useridlist=null, currentuser=0
05-08 12:12:20.999 25356-25356/? E/Zygote: MountEmulatedStorage()
05-08 12:12:21.009 25356-25356/? E/Zygote: v2
05-08 12:12:21.019 25356-25356/? E/SELinux: [DEBUG] get_category: variable
seinfo: platform sensitivity: NULL, cateogry: NULL
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
Я думаю, что последняя строка кода, вероятно, является проблемой.Однако, как бы я ни искал ... Я не знаю, как это решить.