C# 赋值的左边必须是变量、属性或索引器
我真的找不到回答这个特定场景的帖子。另外,也许我真的很累。无论如何,我正在为WinForms进行登录身份验证。我有一个名为DBFunctions.cs的类,它保存着数据库连接信息等。我被C#中的“赋值的左侧必须是变量、属性或索引器”错误所困扰。请在下面找到我的当前代码。提前谢谢C# 赋值的左边必须是变量、属性或索引器,c#,winforms,login,syncfusion,C#,Winforms,Login,Syncfusion,我真的找不到回答这个特定场景的帖子。另外,也许我真的很累。无论如何,我正在为WinForms进行登录身份验证。我有一个名为DBFunctions.cs的类,它保存着数据库连接信息等。我被C#中的“赋值的左侧必须是变量、属性或索引器”错误所困扰。请在下面找到我的当前代码。提前谢谢 namespace emsdashboard { public partial class Login : Form { public Login() { InitializeComponent(); } //Cont
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))
很简单,你把赋值操作符和比较操作符混淆了 你会想进去的
if (VerifyUser(tbxUsername.Text, tbxPassword.Text) == true)
(而不是=true
)
但实际上,将布尔值与常量布尔值进行比较是一项冗余操作
您只需使用:
if (VerifyUser(tbxUsername.Text, tbxPassword.Text))
我试图把一个对象转换成布尔。我声明了bool类型的状态并返回了一个bool,所以我需要将public对象更改为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)
{
我试图把一个对象转换成布尔。我声明了bool类型的状态并返回了一个bool,所以我需要将public对象更改为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)
{
=true
应该使用=
来测试是否相等还可能值得注意的是,此处的SQL查询容易受到SQL注入攻击。请参见=true
应使用=
测试是否相等。另外,可能值得注意的是,此处的SQL查询容易受到SQL注入攻击。请看,谢谢。是的,我很累,哈哈。不过,我确实尝试了==之前的方法,收到了错误,无法使用==。但是,如果我能像前面提到的那样把它去掉,它是多余的,那就行了。我还将阅读有关SQL注入的内容。我已经按照AndrewShepherd所说的那样尝试过,但是,我发现了错误运算符“==”不能应用于“object”和“bool”类型的操作数。是的,我很累,哈哈。不过,我确实尝试了==之前的方法,收到了错误,无法使用==。但是,如果我能像前面提到的那样把它去掉,它是多余的,那就行了。我还将阅读有关SQL注入的内容。正如Andrew Shepherd所说,我已经尝试过了,但是,我发现错误“Operator'==”不能应用于“object”和“bool”类型的操作数