Нерегулярный сбой входа в систему во время связи Android и WCF - PullRequest
0 голосов
/ 11 мая 2018

Я создаю простой модуль входа в систему.Во время завершения и тестирования я заметил, что была проблема с сервером 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

Я думаю, что последняя строка кода, вероятно, является проблемой.Однако, как бы я ни искал ... Я не знаю, как это решить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...