日期:2014-05-17  浏览次数:21263 次

运算符"=="无法应用于"int"和"string"类型的操作数
private void txtLogin_Click(object sender, EventArgs e)
  {
  T_UsersTableAdapter adapter = new T_UsersTableAdapter();
  强类型登录.DataSetUsers.T_UsersDataTable users = adapter.GetDataByUserName(txtUserName.Text);
  if (users.Count <= 0)
  {
  MessageBox.Show("用户名错误!");
  }
  else
  {
  强类型登录.DataSetUsers.T_UsersRow user = users[0];
  if (user.ErrorTimes > 3)
  {
  MessageBox.Show("错误次数过多!");
  return;
  }
  if (user.Password==txtPassword.Text) //这里提示:运算符"=="无法应用于"int"和"string"类型的操作数,但是我检查了我数据的字段"Password"是nvarchar类型,而现在txtPassword也应该是string类型呀,这种问题应该是2边数据类型不相等,但是看起来已经相等了呀,是什么问题呢?
  {
  MessageBox.Show("登录成功!");
  adapter.ResetErrorTimes(user.ID);
  }
  else
  {
  adapter.IncErrorTimesbyId(user.ID);
  MessageBox.Show("密码错误!");
  }

  }
  }

------解决方案--------------------
txtPassword.Text 肯定是string类型的 那就是你的user.Password是int
------解决方案--------------------
都进行 tostring() 看看
------解决方案--------------------
两个都.ToString()一下.
------解决方案--------------------
Password"是nvarchar类型,在数据库里才有nvarchar类型
user.Password肯定是int类型,你ToString()