私はいくつかのコードを持っています。ファイルの最初の行に格納されているもの以外のログインを入力すると、if文の両方の部分が実行されますが、最初の条件満たされる。両方の条件を実行しているステートメントの場合、最初の条件が満たされていれば2番目の条件を実行することはできませんが、C#
私はコードですべての問題を見つけることができないよう、およびログイン情報が正しければ、もちろん、それは彼らがログインできないというエラーを与えるにもかかわらず、利用者がログに記録されます。
コード:
System.IO.StreamReader file = new System.IO.StreamReader("UserData.txt");
string fileLine;
string line;
while ((line = file.ReadLine()) !=null)
{
fileLine = line;
System.Diagnostics.Debug.WriteLine(fileLine);
string len = fileLine.Length.ToString();
string usr = fileLine.Substring(0, 20);
string hash = fileLine.Substring(20, 32);
if (usr.Contains(UserNameIpt.Text) && hash == password)
{
GlobalVar.UserNameEntered = UserNameIpt.Text;
showUserPanel();
break;
}
else
{
MessageBox.Show("Error, password or username incorrect. \r\n\r\nyou may not have an account set up to use this software, please contact the system administartor for assistance.", "Login Error");
}
}
デバッガでこのコードを実行してみましたか?コードがwhileループと同じ繰り返しで 'if'と' else'を実行するとは思えません。 –
問題は、ファイルの各行にエラーが発生することです。つまり、最後に到達するのではなく、100人のユーザーがリストされている場合は、100個のメッセージボックスが表示されます..... – BugFinder
はい、これはwhile ifよりも。 – ThrowingSpoon