Мне нужно разрешить пользователю обновлять данные, введенные в текстовое поле, чтобы они отражались обратно в сведениях конкретного пользователя в database

#c# #asp.net #linq #webforms

#c# #asp.net #linq #веб-формы

Вопрос:

Теперь мой запрос заключается в том, что я разработал домашнюю страницу пользователя, используя переменные сеанса, которые будут содержать имя пользователя и адрес электронной почты пользователя и отображать эти сеансы на странице aspx домашней страницы, теперь мне нужно разрешить конкретному пользователю редактировать и обновлять зарегистрированный адрес электронной почты, и после его обновления база данных также должна обновиться новыми значениями поля электронной почты для этого конкретного пользователя. Теперь в базе данных у меня есть таблица с именем, tblcontacts которая содержит четыре столбца как name , fname , E-mail и studentID . Пожалуйста, помогите мне, как мне найти и выбрать соответствующую строку для обновления сведений с помощью кода запроса LINQ.

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Homepage.aspx.cs" Inherits="WebApplication5.Homepage" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;
        <br />
amp;nbsp;amp;nbsp;amp;nbsp;<h1> Welcome!amp;nbsp; </h1>
        <p> amp;nbsp; <img src="user.jpg" /></p>
        amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;
        <asp:Label ID="lblName" runat="server" Text="Label"></asp:Label>
amp;nbsp;amp;nbsp;<br />
        <br />
amp;nbsp;Your Registered e-mail is:
        <asp:Label ID="lblmail" runat="server" Text="Label"></asp:Label>
        amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp;
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Edit" />
amp;nbsp;amp;nbsp;amp;nbsp;amp;nbsp; New-Email :amp;nbsp;
        <asp:TextBox ID="TextBox1" runat="server" Visible="False"></asp:TextBox>
        amp;nbsp;
        <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox1" Display="Dynamic" ErrorMessage="Wrong Format!" ForeColor="Red" ValidationExpression="w ([- .']w )*@w ([-.]w )*.w ([-.]w )*"></asp:RegularExpressionValidator>
        <br />
        <br />
        <br />
        <br />
    
    </div>
    </form>
</body>
</html>  

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication5
{
    public partial class Homepage : System.Web.UI.Page
    {
        public static int check = 0;
        DataClasses1DataContext db = new DataClasses1DataContext();
        protected void Page_Load(object sender, EventArgs e)
        {
            lblName.Text = Session["name"].ToString();
            lblmail.Text = Session["email"].ToString();
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            tblContact tb = new tblContact();
            check  = 1;
            if (check % 2 == 0)
            { 
              
                tb.Email = TextBox1.Text;
                TextBox1.Visible = false;
                Button1.Text = "edit";
                db.SubmitChanges();
            }
            else
            {
                TextBox1.Visible = true;
                Button1.Text = "Update";
            }
        }
    }
}  

Ответ №1:

После некоторого поиска нужного кода, наконец, я исправил это, удалив строку в коде как tb.email = textbox1.text и добавив следующие две строки кода в функцию обработчика событий нажатия кнопки :

  protected void Button1_Click(object sender, EventArgs e)
    {
        tblContact tb = new tblContact();
        check  = 1;
        if (check % 2 == 0)
        { 
           var student = (from c in db.tblContacts where c.name == lblName.Text select c).Single();
           student.Email = TextBox1.Text;
            TextBox1.Visible = false;
            Button1.Text = "edit";
            db.SubmitChanges();
        }
        else
        {
            TextBox1.Visible = true;
            Button1.Text = "Update";
        }
    }
  

Единственный метод здесь, в LINQ query, позволил выбрать нужную строку в таблице, для которой детали должны быть обновлены!Этот ответ должен быть отмечен как правильный, поскольку это решается с помощью запроса