2013-04-23 94 views
0

我剛剛開始學習C#,這是我第一次請求幫助。將sql查詢的結果傳遞給變量

我寫了一個登錄腳本,其中有通常的「用戶名」和「密碼」字段以及提交按鈕。

該腳本查詢MySQL數據表,如果用戶名和密碼匹配關閉登錄窗口並打開詳細信息窗口。

我想要做的是使用查詢中的兩個字段,並將內容傳遞給詳細信息窗口進行顯示。這是迄今爲止代碼:

MySqlCommand SelectCommand = new MySqlCommand(
"SELECT clientID, login, pass, name_f, 
name_l FROM FIDS_members WHERE login = '" + 
this.username_txt.Text + "' AND pass = '" + 
this.pass_txt.Text + "';", myConn); 

      MySqlDataReader myReader; 
      myConn.Open(); 

      myReader = SelectCommand.ExecuteReader(); 

      int count = 0; 


      while (myReader.Read()) 
      { 

       count = count + 1; 
      } 

      if (count == 1) 
      { 

       string name_f = myReader.GetString("name_f").ToString(); 
       name_f_txt = name_f; 

       this.Hide(); 
       Welcome f2 = new Welcome(name_f.Text); 
       f2.ShowDialog(); 
      } 
      else 

       MessageBox.Show("The username or password are incorrect, please try again..."); 


      // Clear login feilds 
      username_txt.Text = String.Empty; 
      pass_txt.Text = String.Empty; 

我得到的錯誤是:

「字符串不包含定義爲‘文本’

我知道,我可能不做這種正確的,但如果有人可以請提供一些指引,將是非常有益的。

+0

你應該proably使用'新的歡迎(name_f)',而不是name_f .Text自name_f是一個字符串而不是TextBox。如果這沒有幫助,請提供發生錯誤的行號。 – DeCaf 2013-04-23 17:21:17

+0

也開始查找'MySqlParameter' http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqlparameter.html – banging 2013-04-23 17:28:59

+0

您可能還想重新查看命名約定。 name_f vs name_f_txt vs pass_txt等等。 – aquaraga 2013-04-23 17:29:35

回答

1

的錯誤,可能是因爲此行

Welcome f2 = new Welcome(name_f.Text); 

更改它通過

Welcome f2 = new Welcome(name_f); 

name_f是根據你的代碼的字符串,它似乎你使用它作爲一個TextBox

+0

嗨,「name_f」沒有設置爲文本框,我只是希望它保存查詢域的結果。如果我進行了更改並刪除了「.Text」,我得到以下錯誤: – DCJones 2013-04-23 17:39:23

+0

名稱'name_f_txt'在當前上下文中不存在 – DCJones 2013-04-23 17:39:48

+0

@DCJones:這意味着'name_f_txt'沒有被定義,您確定這是名稱?如果'name_f_txt'是一個TextBox,你需要做'name_f_txt.Text = name_f;'但是首先你需要解決「未定義」的問題 – 2013-04-23 17:46:37