2013-03-18 32 views
-3

我有一個項目,我想發送忘記的密碼郵件,但我無法從數據庫中找到用戶名和密碼,它正在發送像UserName這樣的空白郵件:和密碼:我想從中找到用戶名和密碼在提前3次架構的感謝,這是我的代碼數據的基礎上....如何從數據庫中找到忘記的密碼?

protected void Button1_Click(object sender, EventArgs e) 
    { 
     int id = MyRegistration.fgusername(txt_Email.Text.Trim()); 
     if (id > 0) 
     { 
      string sQuery = "Select UserName, Password From Registration Where EmailID = '" + txt_Email.Text + "'"; 

      DataSet ds =DataAccessLayer.ExeSelectQuery(sQuery); 
      try 
      { 
       string sUserName = ""; 
       string sPassword = ""; 
       sendMail(sUserName, sPassword); 
      } 
      catch (Exception ex) { } 
     } 
     else { label1.Text = "Invalid User"; } 
    } 

數據訪問層:

public static int fgusername(string sEmailId) 
     { 
      int id1 = 0; 
      string selectstr = "SELECT UserName, Password FROM Registration WHERE EmailID = '" + sEmailId.Trim() + "'"; 
      id1 = DataAccessLayer.ExecuteReader(selectstr); 
      return id1; 
     } 
+2

在發送郵件之前,您只將sUserName和sPassword設置爲空白。 – Popeye 2013-03-18 06:44:28

+2

危險:SQL注入! ;-) – 2013-03-18 06:47:03

+0

如何從選擇用戶名和密碼的查詢中接收ID? (檢查'fgusername'方法) – Damith 2013-03-18 07:05:37

回答

1
DataSet ds =DataAccessLayer.ExeSelectQuery(sQuery); 
      try 
      { 

    if(ds .Tables[0].Rows.Count>0) 
       { 
    string sUserName = ""; 
       string sPassword = ""; 
       sUserName = ds.Tables[0].Rows[0]["Username"].ToString(); 
       sPassword = ds.Tables[0].Rows[0]["Password"].ToString(); 
sendMail(sUserName, sPassword); 
       } 
      } 

嗨試試這個希望這將有助於ü..

+0

其工作感謝兄弟 – yash 2013-03-18 06:56:46

1

還有什麼你通過運行此代碼

string sUserName = ""; 
      string sPassword = ""; 
      sendMail(sUserName, sPassword); 


try 
     { 
      string sUserName = ""; 
      string sPassword = ""; 
      sendMail(sUserName, sPassword); 
     } 
     catch (Exception ex) { throw ex; // throw the exception } 
期待
+0

它甚至沒有移除代碼 – yash 2013-03-18 06:48:33

+0

'mail.Body = 「嗨,
請檢查您的登錄信息

用戶名」 後,工作+ spassword開頭+ 「

」; mail.IsBodyHtml = true; ' – yash 2013-03-18 06:48:51

0

要設置sUsername和spassword開頭髮送郵件之前空,見下圖:

string sUserName = ""; 
string sPassword = ""; 

sendMail(sUserName, sPassword); 

嘗試做這樣的:

string sUserName = ds.Tables[0].Rows[0]["UserName"].ToString(); 
string sPassword = ds.Tables[0].Rows[0]["Password"].ToString(); 

sendMail(sUserName, sPassword); 
+0

使用此代碼後,我沒有收到電子郵件 – yash 2013-03-18 06:53:59

+0

這是因爲你破壞堆棧跟蹤,排除異常,以便你可以得到沒有得到電子郵件的原因,以及如何做到這一點看到我的答案在下面。 – TalentTuner 2013-03-18 06:57:54

+0

我完成了上面的代碼它的工作 – yash 2013-03-18 07:01:45

0

string sUserName =「」; string sPassword =「」; 你初始化這兩個變量沒有值,我認爲你的SendMail(sUserName,sPassword);按原樣使用這些變量值。