0
私の質問は、テーブルのデータを任意の変数に割り当てる方法です。 テキストボックスに入力された電子メールアドレスを使用して忘れたパスワードを取得し、メールアカウント... 私はすでにデータをフェッチしますが、メールの本文にそのパスワードを割り当てる方法がわからないデータベースから値を取得して任意の変数に割り当てる
私のコードはここに
モデル
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace TelerikLogin.Models.ViewModels
{
public class ForgotPassword
{
public int user_id { get; set; }
public string user_login_name { get; set; }
public string user_password { get; set; }
[Required]
[Display(Name="Email Address : ")]
public string user_email_address { get; set; }
}
}
です10
ビュー
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<TelerikLogin.Models.ViewModels.ForgotPassword>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
ForgotPassword
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>ForgotPassword</h2>
<script src="<%: Url.Content("~/Scripts/jquery.validate.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js") %>" type="text/javascript"></script>
<% using (Html.BeginForm("ForgotPassword", "Account", FormMethod.Post))
{ %>
<%: Html.LabelFor(m => m.user_email_address) %>
<%: Html.TextBox("user_email_address")%>
<%: Html.ValidationSummary(true) %>
<input type="submit" value="Submit"/>
コントローラIは、(ユーザーのパスワードをフェッチ)変数PWDを割り当てるnewmsg.body で
public ActionResult ForgotPassword()
{
return View();
}
[HttpPost]
public ActionResult ForgotPassword(string user_email_address)
{
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\MVC3\TelerikLogin\TelerikLogin\App_Data\Login.mdf;Integrated Security=True;User Instance=True");
DataTable dt1 = new DataTable();
string strQuery = string.Format("SELECT user_password FROM [user_master] WHERE user_email_address='{0}'",user_email_address);
conn.Open();
SqlDataAdapter da1 = new SqlDataAdapter(strQuery, conn);
da1.Fill(dt1);
LoginEntities3 le= new LoginEntities3();
conn.Close();
//...... Below is the query where i fetch the password in var pwd
var pwd = from u in new LoginEntities3().user_master
where u.user_email_address == user_email_address select u.user_password;
if (dt1.Rows.Count > 0)
{
MailAddress mailfrom = new MailAddress("[email protected]");
MailAddress mailto = new MailAddress(user_email_address);
MailMessage newmsg = new MailMessage(mailfrom, mailto);
newmsg.Subject = "Your Password";
**// Here i assign pwd to messege body then it gives an error of type casting so i converted it in To string**
newmsg.Body = pwd.ToString();
SmtpClient smtps = new SmtpClient("smtp.gmail.com", 587);
smtps.UseDefaultCredentials = false;
smtps.Credentials = new NetworkCredential("[email protected]", "password");
smtps.EnableSsl = true;
smtps.Send(newmsg);
return RedirectToAction("About", "Home");
}
return View();
}
それは私に型キャスト程度の誤差を与えます私は文字列()メソッド を使用しているので、msgボディーのパスワードではなくSQLクエリをメールします。 それではどうやってですか?
「pwd」の値は何ですか?デバッグして確認できますか? – Manas
私はselect LINQクエリでsingleordefaultを使う必要があると思っています。http://msdn.microsoft.com/en-us/library/bb359429.aspx –
@Manas oh okey私はそれをデバッグします。そして、これは次のような式だけを表示します ((System.Data.Objects.ObjectQuery)(pwd)) – Dip