#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, позволил выбрать нужную строку в таблице, для которой детали должны быть обновлены!Этот ответ должен быть отмечен как правильный, поскольку это решается с помощью запроса