2014-12-13 1 views
1

Что-то странное происходит. У меня есть форма с 2 ярлыками и 2 текстовыми полями 1 кнопка. В методе действия кнопки я получаю значения из текстовых полей и передавать их на запрос Linq, как этотВозврат null даже значение существует в базе данных WinForm Entity Framework 5

private void button1_Click(object sender, EventArgs e) 
    { 
     string Username = textBoxUsername.ToString(); 
     string Password = textBoxPassword.ToString(); 
     User admin = new User(); 
     admin = db.Users.FirstOrDefault(u => u.Username == Username && u.Pass==Password); 
     if (admin != null) 
      MessageBox.Show("Succesfully"); 
     else 
      MessageBox.Show("Fail"); 
    } 

администратор продолжает возвращать нуль даже значение не существует в базе данных. Но если я перейду на этот admin = db.Users.FirstOrDefault(u => u.Username == "Admin" Pass=="12345");, он ВОЗВРАЩАЕТСЯ, как это должно быть. Можете ли вы рассказать мне, что здесь не так в моем коде и каково решение. Большое спасибо (я извиняюсь, если вы это глупо :()

ответ

1

Эта линия

string Username = textBoxUsername.ToString(); 

возвращает значение System.Windows.Forms.TextBox, Text:, а не текст, набранный в качестве имени пользователя

вам нужно использовать свойство Text

string Username = textBoxUsername.Text; 

же для поля ввода пароля.

В общем случае, если вы используете ToString() из экземпляра класса, возврат является полным именем класса, если класс не переопределяет метод ToString, возвращающий что-то настроенное с использованием данных экземпляра класса. (Например, многочисленные переопределения ToString(some_type_of_mask), используемые для численного и форматирования дат)

+1

большое спасибо за помощь –

Смежные вопросы