Recuperar valor de la base de datos y asignarlo a cualquier variable

Mi pregunta es cómo asignar los datos de la tabla a cualquier variable. Pedí recuperar la contraseña olvidada del empleado a través de su dirección de correo electrónico ingresada en el cuadro de texto y enviarla a su cuenta de correo. Ya obtuve los datos pero no lo sé. cómo asignar esa contraseña en el cuerpo del correo electrónico

mi código está aquí

Modelo

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; }
    }
}

Ver

<%@ 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"/>

Reguladora

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("myid@gmail.com");
        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("myid@gmail.com", "password");
        smtps.EnableSsl = true;
        smtps.Send(newmsg);


        return RedirectToAction("About", "Home");
    }


   return View();
}

En newmsg.body, asigno la variable pwd (que obtuvo la contraseña del usuario), luego me da un error de tipo de conversión, así que uso el método To String () para que envíe la consulta sql, no la contraseña en el cuerpo del mensaje. Entonces, ¿cómo? ¿para hacerlo?

preguntado el 10 de marzo de 12 a las 05:03

¿Puede depurar y verificar cuál es el valor de "pwd"? -

Supongo que necesita usar singleordefault en su consulta LINQ seleccionada msdn.microsoft.com/en-us/library/bb359429.aspx -

@Manas, oh okey, lo depuré ... y solo muestra expresiones como estas ((System.Data.Objects.ObjectQuery)(pwd)) -

Almacenar contraseñas casi siempre es algo incorrecto; si puede, desafíe este diseño. -

1 Respuestas

Prueba esto

cadena pwd = (de u en new LoginEntities3().user_master donde u.user_email_address == user_email_address select u.user_password).Encadenar();

respondido 10 mar '12, 05:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.