Deutsch

Воспоминание asp net 12.10.2024

608  
uscheswoi_82 коренной житель12.10.24 12:13
NEW 12.10.24 12:13 

Всем привет! Сегодня хочу вспомнить ASP.NET 2.0. Но прежде чем вспомнить про ASP.NET хочу написать кое-что не по теме. Короче пока лежал в больнице почти 2 месяца купил такие лего журналы, там был конструктор



А вот видео, про журнал лего:



Ну да ладно, давайте поговорим об ASP.NET 2.0. Примерно в 2006 г. я купил компьютерный журнал в обычном магазине, и там был вот такой диск.






Благодаря этому компакт диску с журналом, я начал изучать программирование на ASP.NET 2.0, VB.NET и C#. Покуда я умел программировать на Си, Си++ и Visual Basic 6.0, я легко перешёл на C# и VB.NET, и быстро освоил ASP.NET 2.0. На диске были обучающие видеоуроки по программированию на ASP.NET 2.0, и среда разработки Microsoft Visual Web Developer 2005 Express. Мы как раз и будем играться на Microsoft Visual Web Developer 2005 Express.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#1 
uscheswoi_82 коренной житель26.11.24 14:51
26.11.24 14:51 
в ответ uscheswoi_82 12.10.24 12:13

Всем привет!

Хочу продолжить вспоминать. Сегодня я поиграюсь в логин.

1. Запустим MS Web 2005 Express Edition, нажмём на Datei->Neue Website...:


2. Появится диалог Neue Website, нажмём ASP.NET-Website, выберим язык C# (Visual C#):


3. Вот новый проект:

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#2 
uscheswoi_82 коренной житель26.11.24 15:01
NEW 26.11.24 15:01 
в ответ uscheswoi_82 26.11.24 14:51

Теперь дальше. Будем играться в Login.

1. Создастся такой код Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Unbenannte Seite</title>
</head>
<body>
  <form id="form1" runat="server">
    <div>
    </div>
  </form>
</body>
</html>


И Default.aspx.cs:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page {
  protected void Page_Load(object sender, EventArgs e) {}
}



2. Дальше добавим элемент управления Login:

<asp:Login ID="Login1" runat="server">
</asp:Login>



3. Добавим событие:

<asp:Login ID="Login1" runat="server" OnAuthenticate="Login1_Authenticate">
</asp:Login>


и код:

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) {
}



4.

Теперь подправим:

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) {
  e.Authenticated = false;
}



5. Вуаля, сейчас работает вот так:



Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#3 
uscheswoi_82 коренной житель26.11.24 15:03
NEW 26.11.24 15:03 
в ответ uscheswoi_82 26.11.24 15:01

Вот полный код Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Unbenannte Seite</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Login ID="Login1" runat="server" OnAuthenticate="Login1_Authenticate">
        </asp:Login>
    </div>
    </form>
</body>
</html>


И код Default.aspx.cs:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page {
  protected void Page_Load(object sender, EventArgs e) { }
  protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) {
    e.Authenticated = false;
  }
}
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#4 
uscheswoi_82 коренной житель26.11.24 15:08
NEW 26.11.24 15:08 
в ответ uscheswoi_82 26.11.24 15:03, Последний раз изменено 26.11.24 15:10 (uscheswoi_82)

1. Теперь дальше. Улучшим код. Добавим в код Default.aspx:

Hallo, <asp:LoginName ID="LoginName1" runat="server" />
<asp:Login ID="Login1" runat="server" OnAuthenticate="Login1_Authenticate">
</asp:Login>



И Default.aspx.cs:

protected void Page_Load(object sender, EventArgs e) {
  if(!this.Page.User.Identity.IsAuthenticated)
    FormsAuthentication.RedirectFromLoginPage(Login1.UserName, Login1.RememberMeSet);
  }
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) {
  if(Login1.UserName.Equals("mishka") && Login1.Password.Equals("1234")) 
    e.Authenticated = true;
  else e.Authenticated = false;
}



2. UPDATE! Забыл Добавим в Web.config:

<authentication mode="Forms">
  <forms defaultUrl="Default.aspx" loginUrl="Default.aspx" slidingExpiration="true" timeout="2880"></forms>
</authentication>



2. 3. Вуаля! Давайте введём Username mishka, а пароль 1234:




Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#5 
uscheswoi_82 коренной житель26.11.24 15:13
NEW 26.11.24 15:13 
в ответ uscheswoi_82 26.11.24 15:08

Вот полный код Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Unbenannte Seite</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        Hallo, <asp:LoginName ID="LoginName1" runat="server" />
        <asp:Login ID="Login1" runat="server" OnAuthenticate="Login1_Authenticate">
        </asp:Login>
    </div>
    </form>
</body>
</html>


И Default.aspx.cs:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page {
  protected void Page_Load(object sender, EventArgs e) {
    if(!this.Page.User.Identity.IsAuthenticated)
      FormsAuthentication.RedirectFromLoginPage(Login1.UserName, Login1.RememberMeSet);
  }

  protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) {
    if(Login1.UserName.Equals("mishka") && Login1.Password.Equals("1234"))
      e.Authenticated = true;
    else e.Authenticated = false;
  }
}
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#6 
uscheswoi_82 коренной житель26.11.24 16:17
NEW 26.11.24 16:17 
в ответ uscheswoi_82 26.11.24 15:13

Вот так выглядела оригинальная коробка, там 2 DVD, на 1-м DVD там программа Microsoft Web 2005 Express Edition, на-2 DVD там бесплатные картинки и фотографии:











Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#7 
uscheswoi_82 коренной житель3 дня назад, 14:40
NEW 3 дня назад, 14:40 
в ответ uscheswoi_82 26.11.24 16:17

Всем привет! Давно я неигрался в ASP NET 2.0, сегодня поиграимся дальше. Сейчас пойдёт речь о поключение к базе данных, и отображение данных из таблицы на сайте. База данных будет подключаться сделанная на Microsoft Access. Чтобы отобразить данные в веб браузере делается это очень просто, нужно два компонента - <asp:AccessDataSource ..> для подключение к базе данных, и <asp:GridView ..> - для отображения данных из базы данных.

1. Вот так выглядет наша база данных и таблица Persony, в которых записаны имя и фамилии Вова Пупкин, Маша Пупина, Дима Попкин, Антон Попов:



2. Напишим вот так:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>Чтение из базы данных.</title>
  </head>
  <body>
    <form id="form1" runat="server">
    <div>
    <asp:AccessDataSource ID="accdbPerson" runat="server" DataFile="~/App_Data/db_persony.mdb" SelectCommand="SELECT [PersonID], [Imja], [Familia] FROM [Persony]"></asp:AccessDataSource>
    <asp:GridView ID="GridView1" runat="server" DataSourceID="accdbPerson" AutoGenerateColumns="False" DataKeyNames="PersonID">
      <Columns>
        <asp:BoundField DataField="PersonID" HeaderText="Персона №" />
        <asp:BoundField DataField="Imja" HeaderText="Имя" />
        <asp:BoundField DataField="Familia" HeaderText="Фамилия" />
      </Columns>
    </asp:GridView>
    </div>
  </form>
  </body>
</html>



3. Вуаля! А вот и результат:


Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#8 
uscheswoi_82 коренной житель3 дня назад, 14:48
NEW 3 дня назад, 14:48 
в ответ uscheswoi_82 3 дня назад, 14:40

Но самый простой способ, если вам не нужно отображать заголовки вот так:

<asp:AccessDataSource ID="accdbPerson" runat="server" DataFile="~/App_Data/db_persony.mdb" SelectCommand="SELECT [PersonID], [Imja], [Familia] FROM [Persony]"></asp:AccessDataSource>
<asp:GridView ID="GridView1" runat="server" DataSourceID="accdbPerson" AutoGenerateColumns="False" DataKeyNames="PersonID" />


Но тогда в заголовках будут названия полей, в данном случае латинскими буквами:

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#9 
uscheswoi_82 коренной житель3 дня назад, 15:31
NEW 3 дня назад, 15:31 
в ответ uscheswoi_82 3 дня назад, 14:48

Теперь поиграем в менюшечку. Чтобы сделать менюшечку нужно использовать компонент <asp:Menu ...>.

1. Ориентация у менюшечки должно быть горизонтальным т.е. Orientation="Horizontal" см.:

<asp:Menu ID="Menu1" runat="server" Orientation="Horizontal">



2. Вот так добавляем пункты меню в менюшечку Главная страница и Об нас:




3. Вот код:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>Пример менюшечки</title>
  </head>
  <body>
    <form id="form1" runat="server">
      <div>
        <asp:Menu ID="Menu1" runat="server" Orientation="Horizontal">
          <DataBindings>
            <asp:MenuItemBinding DataMember="item" />
            <asp:MenuItemBinding DataMember="menuitems" />
          </DataBindings>
          <Items>
            <asp:MenuItem Text="Главная страница" Value="Главная страница"></asp:MenuItem>
            <asp:MenuItem Text="Об нас" Value="Об нас"></asp:MenuItem>
          </Items>
        </asp:Menu>
    </form>
  </body>
</html>


4. Вуаля!


Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#10 
uscheswoi_82 коренной житель3 дня назад, 16:00
NEW 3 дня назад, 16:00 
в ответ uscheswoi_82 3 дня назад, 15:31

Теперь давайте поиграемся в темы и скины. В ASP.NET WebForms 2.0 есть темы и скины.

1. Тему выберают спомощью параметра Theme="названия скина" см.:

Тема Winter:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" Theme="Winter" %>


Тема Sommer:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" Theme="Sommer" %>



2. Вот так выглядят подпапки со скинами Winter и Sommer, эти подпапки находятся в папке App_Themes:



3. Вот код:

Winter.skin:

<asp:Label runat="server" BackColor="Darkblue" ForeColor="White" />
<asp:TextBox runat="server" BackColor="White" ForeColor="Darkblue" />
<asp:Button runat="server" BackColor="Darkblue" ForeColor="White" />


Sommer.skin:

<asp:Label runat="server" BackColor="Green" ForeColor="Yellow" />
<asp:TextBox runat="server"  BackColor="Yellow" ForeColor="Green" />
<asp:Button runat="server" BackColor="Green" ForeColor="Yellow" />


Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" Theme="Sommer" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Пример тем и скинов</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="Введите ваше имя:"></asp:Label><br />
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <br /><br />
        <asp:Label ID="Label2" runat="server" Text="Введите вашу фамилию:"></asp:Label><br />
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <br /><br />
        <asp:Button ID="Button1" runat="server" Text="Далее" />
    </div>
    </form>
</body>
</html>


Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#11 
uscheswoi_82 коренной житель3 дня назад, 16:12
NEW 3 дня назад, 16:12 
в ответ uscheswoi_82 3 дня назад, 16:00

Вуаля! А вот и результат :

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" Theme="Winter" %>




<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" Theme="Sommer" %>

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#12 
uscheswoi_82 коренной житель2 дня назад, 08:57
NEW 2 дня назад, 08:57 
в ответ uscheswoi_82 3 дня назад, 14:48

Всем привет, продолжим болтавню про классический ASP NET WebForms. Как-то я на уроке в колледже вместо того чтобы учиться, учился программированию на ASP NET WebForms. Покуда учителя следили чем мы на уроке занимаемся спомощью Remote Desktop, один из учителей показал всем одноклассникам, что я на уроке играюсь в ASP NET. Вспоминаю мне примерно в 2008 г. подарили веб хостинг на ASP NET 2.0, и поэтому была мотивация изучить ASP NET.


Вот тут см. #9 опечатка там написано так:

<asp:AccessDataSource ID="accdbPerson" runat="server" DataFile="~/App_Data/db_persony.mdb" SelectCommand="SELECT [PersonID], [Imja], [Familia] FROM [Persony]"></asp:AccessDataSource>
<asp:GridView ID="GridView1" runat="server" DataSourceID="accdbPerson" AutoGenerateColumns="False" DataKeyNames="PersonID" />



а нужно вот так:

<asp:AccessDataSource ID="accdbPerson" runat="server" DataFile="~/App_Data/db_persony.mdb" SelectCommand="SELECT [PersonID], [Imja], [Familia] FROM [Persony]"></asp:AccessDataSource>
<asp:GridView ID="GridView1" runat="server" DataSourceID="accdbPerson" AutoGenerateColumns="True" DataKeyNames="PersonID" />


Т.е. нужно чтобы было AutoGenerateColumns="True".

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#13 
uscheswoi_82 коренной житель2 дня назад, 09:05
NEW 2 дня назад, 09:05 
в ответ uscheswoi_82 2 дня назад, 08:57

Итак в ASP NET 2.0 WebForms очень много компонентов, и можно самому сделать свой компонент. Сегодня поговорим о календареке.

1. Вот код Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" UICulture="ru-ru" Culture="ru-ru" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>Календарик</title>
  </head>
  <body>
    <form id="form1" runat="server">
      <div>
        <asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged" 
         OnDayRender="Calendar1_DayRender"></asp:Calendar>
        <br />
        <asp:Label ID="Label1" runat="server" Text="Label" ForeColor="Red">
        </asp:Label>
      </div>
    </form>
  </body>
</html>



2. Вот код Default.aspx.cs:

using System;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page {
  protected void Page_Load(object sender, EventArgs e) {
    Label1.Text = "";
  }

  protected void Calendar1_SelectionChanged(object sender, EventArgs e) {
    if (Calendar1.SelectedDate.Year == 2025 && Calendar1.SelectedDate.Month == 1 && Calendar1.SelectedDate.Day == 1)
      Label1.Text = "С НОВЫМ 2025 ГОДОМ!";
    else if(Calendar1.SelectedDate.Year == 2024 && Calendar1.SelectedDate.Month == 12 && Calendar1.SelectedDate.Day >= 24 && 
         Calendar1.SelectedDate.Day <= 25)
      Label1.Text = "С РОЖДЕСТВОМ!";
    else if (Calendar1.SelectedDate.Year == 2024 && Calendar1.SelectedDate.Month == 12 && Calendar1.SelectedDate.Day >= 26 && 
         Calendar1.SelectedDate.Day <= 31)
      Label1.Text = "С НАСТУПАЮЩИМ 2025 ГОДОМ!";
    else
      Label1.Text = "";
  }

  protected void Calendar1_DayRender(object sender, DayRenderEventArgs e) {
  if(e.Day.Date.Month == 12 && e.Day.Date.Year == 2024 && e.Day.Date.Day >= 24 
    && e.Day.Date.Day <= 25) e.Cell.ForeColor = System.Drawing.Color.Red;
  if(e.Day.Date.Day >= 31 && e.Day.Date.Month == 12 
    && e.Day.Date.Year == 2024) e.Cell.ForeColor = System.Drawing.Color.Red;
  if(e.Day.Date.Month == 1 && e.Day.Date.Year == 2025 && e.Day.Date.Day == 1) 
    e.Cell.ForeColor = System.Drawing.Color.Red;
  }
}


Через пару минут дальше продолжу.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#14 
uscheswoi_82 коренной житель2 дня назад, 11:12
NEW 2 дня назад, 11:12 
в ответ uscheswoi_82 2 дня назад, 09:05

3. Вуаля! А вот так наш календарек работает:


Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#15 
uscheswoi_82 коренной житель2 дня назад, 15:59
NEW 2 дня назад, 15:59 
в ответ uscheswoi_82 2 дня назад, 11:12

Теперь хочу поиграться в валидаторы, вспомнить их.

1. Вот есть такой код:

Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Пример требовыемые поля</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <div id="frmField" runat="server">
        <asp:Label ID="lbLastname" runat="server" Text="Фамилия:"></asp:Label><asp:RequiredFieldValidator
            ID="rqfvLastname" runat="server" ErrorMessage="Введите вашу фамилию" 
            ControlToValidate="txtLastname" SetFocusOnError="True"></asp:RequiredFieldValidator><br />
        <asp:TextBox ID="txtLastname" runat="server"></asp:TextBox>
        <br /><br />
        <asp:Label ID="lbFirstname" runat="server" Text="Имя:"></asp:Label>
        <asp:RequiredFieldValidator
            ID="rqfvFirstname" runat="server" ErrorMessage="Введите ваше имя" 
            ControlToValidate="txtFirstname" SetFocusOnError="True"></asp:RequiredFieldValidator><br />
        <asp:TextBox ID="txtFirstname" runat="server"></asp:TextBox>
        <br /><br />
        <asp:Label ID="lbBirthday" runat="server" Text="Дата рождения:"></asp:Label> 
        <asp:RequiredFieldValidator ID="rqfvBirthday" runat="server" ControlToValidate="txtBirthday"
            ErrorMessage="Введите вашу дату рождения" SetFocusOnError="True"></asp:RequiredFieldValidator><br />
        <asp:TextBox ID="txtBirthday" runat="server"></asp:TextBox>
        <br />
        <br />
        <br />
        <br />
        <asp:Button ID="btnSave" runat="server" Text="Сохранить" OnClick="btnSave_Click" />
        </div>
        <div id="frmResult" runat="server">
        </div>
    </div>
    </form>
</body>
</html>



Default.aspx.cs:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page {
    protected void Page_Load(object sender, EventArgs e) {
        this.frmField.Visible = true;
        this.frmResult.Visible = false;
    }

    protected void btnSave_Click(object sender, EventArgs e) {
        this.frmField.Visible = false;
        this.frmResult.Visible = true;
        Label l = new Label();
        l.Text = "Здравствуйте " + this.txtFirstname.Text + " " + this.txtLastname.Text + ", Вы родились " + this.txtBirthday.Text + ". Всё успешно сохранино!";
        l.Font.Bold = true;
        this.frmResult.Controls.Add(l);
    }
}


2. Вуаля! А вот и результат:




За это я обожаю ASP NET WebForms!

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#16 
uscheswoi_82 коренной жительСегодня, 02:03
NEW Сегодня, 02:03 
в ответ uscheswoi_82 2 дня назад, 15:59

Всем привет! Продолжим играться в ASP NET 2.0 WebForms. Сегодня прочитаем и запишим данные в базу данных.

Вот код Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Пример работы с БД</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/db_persony.mdb" 
         InsertCommand="INSERT INTO Persony(Imja, Familia) VALUES (?,?)" SelectCommand="SELECT [PersonID], [Imja], [Familia] FROM [Persony]">
            <InsertParameters>
                <asp:ControlParameter ControlID="txtFirstname" DbType="String" Name="newparameter"
                    PropertyName="Text" />
                <asp:ControlParameter ControlID="txtLastname" DbType="String" Name="newparameter"
                    PropertyName="Text" />
            </InsertParameters>
        </asp:AccessDataSource>
        <asp:AccessDataSource ID="AccessDataSource2" runat="server" DataFile="~/App_Data/db_persony.mdb"
            SelectCommand="SELECT [PersonID], [Imja] + ' ' + [Familia] AS [Imja_Familia] FROM [Persony]"></asp:AccessDataSource>
        Люди:<br />
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="PersonID"
            DataSourceID="AccessDataSource1">
            <Columns>
                <asp:BoundField DataField="PersonID" HeaderText="PersonID" InsertVisible="False"
                    ReadOnly="True" SortExpression="PersonID" />
                <asp:BoundField DataField="Imja" HeaderText="Имя" SortExpression="Imja" />
                <asp:BoundField DataField="Familia" HeaderText="Фамилия" SortExpression="Familia" />
            </Columns>
        </asp:GridView>
        <br />
        Люди:<br />
        <asp:DropDownList ID="cboPerson" runat="server" DataSourceID="AccessDataSource2" DataTextField="Imja_Familia" DataValueField="PersonID">
        </asp:DropDownList><br />
        <br />
        <asp:Label ID="lbFirstname" runat="server" Text="Ваше имя:"></asp:Label>
        <asp:RequiredFieldValidator ID="reqfvFirstname" runat="server" ControlToValidate="txtFirstname"
            ErrorMessage="Введите ваше имя"></asp:RequiredFieldValidator><br />
        <asp:TextBox ID="txtFirstname" runat="server"></asp:TextBox><br />
        <br />
        <asp:Label ID="lbLastname" runat="server" Text="Ваша фамилия:"></asp:Label>
        <asp:RequiredFieldValidator ID="reqfvLastname" runat="server" ControlToValidate="txtLastname"
            ErrorMessage="Введите вашу фамилию"></asp:RequiredFieldValidator><br />
        <asp:TextBox ID="txtLastname" runat="server"></asp:TextBox><br />
        <br />
        <asp:Button ID="btnSave" runat="server" Text="Сохранить" OnClick="btnSave_Click" /><br />
    </div>
    </form>
</body>
</html>



Вот код Default.aspx.cs:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


public partial class _Default : System.Web.UI.Page {
  protected void Page_Load(object sender, EventArgs e) {}
  protected void btnSave_Click(object sender, EventArgs e) {
    AccessDataSource1.Insert();
  }
}

Вуаля! А вот так работает наша программа:



Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#17