C # Левая сторона задания должна быть переменной, свойством или индексом

Я не мог найти сообщения, которые отвечали на этот конкретный сценарий. Плюс, может быть, я просто очень устал. Во всяком случае, я работаю над аутентификацией входа в систему для WinForms. У меня есть class с именем DBFunctions.cs, который содержит информацию о подключении к базе данных и т. Д. Я застрял в этом «Левая сторона присваивания должна быть ошибкой переменной, свойства или индексатора» на C #. Пожалуйста, найдите мой текущий код ниже. Заранее спасибо.

namespace emsdashboard { public partial class Login : Form { public Login() { InitializeComponent(); } //Contains the SQL string and other information to process //user login. public object VerifyUser(string userId, string password) { DBFunctions dbInfo = new DBFunctions(); bool status = false; string verifyUserQry = "SELECT * FROM Employee WHERE UserName = '" + userId + "' AND Password = '" + password + "'"; DataTable dt = default(DataTable); dt = dbInfo.OpenDTConnection(verifyUserQry); if (dt.Rows.Count == 1) { status = true; } return status; } //When the login button is clicked. Check to see if the user //entered a username and/or password. Also verify the username //and the password are correct, else display an error message. private void btnLogin_Click(object sender, EventArgs e) { if(tbxUsername.Text=="" || tbxPassword.Text=="") { MessageBox.Show("Username and Password cannot be blank", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { if (VerifyUser(tbxUsername.Text, tbxPassword.Text) = true) { this.Hide(); } } } } } 

Приятно просто, вы путаете = (оператор присваивания) с == (оператор сравнения).

Вы хотели бы ввести

 if (VerifyUser(tbxUsername.Text, tbxPassword.Text) == true) 

(а не = true )

Но на самом деле сравнение логического значения с постоянным булевым значением является избыточной операцией.

Вы должны просто использовать:

 if (VerifyUser(tbxUsername.Text, tbxPassword.Text)) 

Я пытался преобразовать объект в bool. Я объявлял статус типа bool и возвращал bool, поэтому мне нужно было изменить публичный объект на public bool. Код следует:

Оригинал:

 public object VerifyUser(string userId, string password) { DBFunctions dbInfo = new DBFunctions(); bool status = false; string verifyUserQry = "SELECT * FROM Employee WHERE UserName = '" + userId + "' AND Password = '" + password + "'"; DataTable dt = default(DataTable); dt = dbInfo.OpenDTConnection(verifyUserQry); if (dt.Rows.Count == 1) { status = true; } return status; } 

Исправленный

 public bool VerifyUser(string userId, string password) { DBFunctions dbInfo = new DBFunctions(); bool status = false; string verifyUserQry = "SELECT * FROM Employee WHERE UserName = '" + userId + "' AND Password = '" + password + "'"; DataTable dt = default(DataTable); dt = dbInfo.OpenDTConnection(verifyUserQry); if (dt.Rows.Count == 1) {