2012-07-02 65 views
0

我有一個選擇在linq:在,如果我必須爲允許比較用戶名和密碼在LINQ和訪問選擇元素

,但用戶元素的斜面訪問。

var user = from u in db.tbl_User select new {u.UserName,u.Password}; 
if(txtname == user && txtpass == pass) 
      { 
      Form2 frm = new Form2(); 
      Visible = false; 
      frm.Show(); 

      } 
      else 
      { 

       MessageBox.Show("Error","UserName or Password is wrong",MessageBoxButtons.OK); 

      } 

我該怎麼給元件user

+0

薩拉姆,波斯語mizari inja pesar jan? doros bepors soaleto ta javab begiri –

回答

4

user變量是返回匹配的用戶的序列查詢 - 不是一個單一用戶

這聽起來像你可能想:

var user = db.tbl_User 
      .FirstOrDefault(u => u.UserName == txtname.Text 
            && u.Password == txtPass.Text); 
if (user != null) 
{ 
    ... 
} 

(我希望你不要真的有純文本密碼,順便......)

+0

我試過但我有一個錯誤:\t運算符'=='不能應用於類型'字符串'和'System.Windows.Forms.TextBox'的操作數' –

+0

'用'txtname替換'txtname' .Text' –

+0

並用'txtPass.Text'代替'txtPass' –

0
var user = from u in db.tbl_User select new {u.UserName,u.Password}; 
if(user.Count() != 1) 
    return; 
if(txtname == user.UserName && txtpass == pass.Password) 
{ 
     Form2 frm = new Form2(); 
     Visible = false; 
     frm.Show(); 

     } 
     else 
     { 

      MessageBox.Show("Error","UserName or Password is wrong" ,MessageBoxButtons.OK); 

} 
+0

age javabeto gerefti feleshe bala ro bezan va bad ham javab ro tayid kon。 –

+0

我無法訪問user.UserName –

+0

因爲用戶是一個查詢,你可以使用它像:user.single ().UserName ...其中用戶是你的表 –