From 89a7a9c58b52869ba4edf4095349911a8ef75ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=86=A0=E8=B1=AA?= <2716531257@qq.com> Date: Wed, 18 May 2022 09:44:04 +0000 Subject: [PATCH 1/5] =?UTF-8?q?=E6=96=B0=E5=BB=BA=2006=E5=BC=A0=E5=86=A0?= =?UTF-8?q?=E8=B1=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "06\345\274\240\345\206\240\350\261\252/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "06\345\274\240\345\206\240\350\261\252/.keep" diff --git "a/06\345\274\240\345\206\240\350\261\252/.keep" "b/06\345\274\240\345\206\240\350\261\252/.keep" new file mode 100644 index 0000000..e69de29 -- Gitee From 46fc00e7851788861d1131b1b1aa2bc44a9836fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=86=A0=E8=B1=AA?= <2716531257@qq.com> Date: Fri, 20 May 2022 02:49:12 +0000 Subject: [PATCH 2/5] =?UTF-8?q?06=E5=BC=A0=E5=86=A0=E8=B1=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../05-18 ASP.NET\345\210\235\350\257\206.md" | 43 +++++ ...65\351\235\242\345\257\271\350\261\241.md" | 154 ++++++++++++++++++ ...05\347\275\256\345\257\271\350\261\241.md" | 52 ++++++ 3 files changed, 249 insertions(+) create mode 100644 "06\345\274\240\345\206\240\350\261\252/05-18 ASP.NET\345\210\235\350\257\206.md" create mode 100644 "06\345\274\240\345\206\240\350\261\252/05-19 ASP.NET \351\241\265\351\235\242\345\257\271\350\261\241.md" create mode 100644 "06\345\274\240\345\206\240\350\261\252/05-20ASP.NET\345\206\205\347\275\256\345\257\271\350\261\241.md" diff --git "a/06\345\274\240\345\206\240\350\261\252/05-18 ASP.NET\345\210\235\350\257\206.md" "b/06\345\274\240\345\206\240\350\261\252/05-18 ASP.NET\345\210\235\350\257\206.md" new file mode 100644 index 0000000..d8051fe --- /dev/null +++ "b/06\345\274\240\345\206\240\350\261\252/05-18 ASP.NET\345\210\235\350\257\206.md" @@ -0,0 +1,43 @@ +# 初识 + +## 静态网页&服务器端开发技术 + +### 静态网页 + + 以.html 或者.htm 结尾的网页 ,只能单纯的显示文本和图像 无法和用户接互,无法根据用户的请求显示不同的网页内容 + +### 服务器端开发技术 + + 不仅可以显示文本和图像 还可以根据用户请求,动态显示不同的网页内容(与后台交互) + +## .ASP.NET优点 + +1. 与浏览器无关 +2. 将业务逻辑代码与显示逻辑分开 +3. 新的集成开发环境 +4. 简单性和易学性 +5. 用户帐户和角色 +6. 多处理器环境的可靠性 +7. 高效的可管理性 +8. 执行效率的大幅提高 +9. 易于配置和部署 + +## .ASP.NET功能 + +1. 多语言支持 +2. 代码编译执行 +3. 缓存机制 +4. 服务器控件 +5. Web服务 +6. 状态管理 +7. 安全管理 +8. 配置和部署 + +## IIS + +1. 同样是动态网页技术,ASP.NET就像JSP需要Tomcat服务器或者Apache服务器一样,ASP.NET也需要使用Web服务器作为其发布平台,一般使用IIS作为其Web服务器。IIS是Internet信息服务(Internet Information Server)的缩写,是微软的Internet服务器 +2. IIS是Windows Servers 操作系统免费捆绑的组件 +3. IIS是web应用程序运行的服务器 + + + diff --git "a/06\345\274\240\345\206\240\350\261\252/05-19 ASP.NET \351\241\265\351\235\242\345\257\271\350\261\241.md" "b/06\345\274\240\345\206\240\350\261\252/05-19 ASP.NET \351\241\265\351\235\242\345\257\271\350\261\241.md" new file mode 100644 index 0000000..145dbfd --- /dev/null +++ "b/06\345\274\240\345\206\240\350\261\252/05-19 ASP.NET \351\241\265\351\235\242\345\257\271\350\261\241.md" @@ -0,0 +1,154 @@ +# 页面对象 + +## 网页脚本 + +1. 指定输入文本或单击按钮后页面的行为 +2. 根据用户的输入或选择将应用程序从一个页面导航至其他页面 +3. 收集或存储来自客户端的信息 +4. 执行数据库操作,如查询、显示数据库数据等 + +### 服务端脚本 + +服务器端脚本也是页面的一部分,它不发送至浏览器,而是在请求页面之后和在回送至浏览器之前由服务器处理这些脚本。 + +```asp + + +runat = "server" +``` + +### 客户端脚本 + +客户端脚本是页面的一部分,当用户请求页面时,就将这些脚本发送至浏览器。客户端脚本包含要在客户端执行的脚本代码,通常对客户端事件进行响应。 + +**客户端脚本可以实现:** + +1. 在将某个页面加载至浏览器或用户单击按钮时,改变页面的外观; +2. 验证用户在窗体中输入的数据,将通过验证的数据发送至服务器; +3. 当触发按钮的单击事件时,在浏览器显示相关的信息。 + +### 网页生成过程分析 + +![](C:\Users\Administrator\Desktop\图片2.png) + +### 回发 + +产生的时机:当用户操作让表单**产生submit**时,回发产生。 + +原理分析:当前网页被提交给服务处理,处理时会对当前网页再次加载(重新绘制)。 + +Load事件:**不管是首次加载还是回发,都会触发Load事件** + +### 网页生成过程总结 + +1. 客户端点击提交按钮或者触发控件的事件 +2. 服务器端刷新整个页面 +3. 执行page_load事件 +4. 执行具体控件的事件并给页面控制赋值 +5. 重新生成新页面的HTML +6. 使用Response对象返回包含新数据的html页面 +7. 浏览器看到刷新后的页面 + +## Page对象 + +### ASP.NET运行机制 + +![](C:\Users\Administrator\Desktop\图片3.png) + +### Page指令 + +![](C:\Users\Administrator\Desktop\图片4.png) + +### Paged对象属性 + +![](C:\Users\Administrator\Desktop\图片5.png) + +### Page对象的事件 + +#### 对象事件1 + +AbortTransaction CommitTransaction DataBinding Disposed + +Error Init Load PreRender Unload + +#### 对象事件2 + +较常用的一个页面事件是Load,它在C#中的用法如下所示: + +```asp +protected void Page Load(object sende,EventAras e) +{ + Response.Write("This is Page Load event"); +} + +``` + +#### 对象事件3 + +主页面事件的启动顺序 + +PreInit Init InitComplete PreLoad Load + +LoadComplete PreRender PreRenderComplete Unload + +## IsPodtBack + +如何判断回发或者首次加载? + +![](C:\Users\Administrator\Desktop\图片6.png) + +```asp +示例: +//在Page_Load事件中编写如下代码: +protected void Page_Load(object sender.EvenArs e) +{ + if(!Page.IsPostBack) + { + this.lblTime.Text = System.DanteTime.Now.ToString(); + } +} +//在提交按钮的“Click”事件中编写如下代码: + +this.lblMessage.Visible = true; +this.lblMessage.Text = ""请确认您填写的信息:; +this.lblMessage.Text = "" +姓名:+ this.txtName.Text; +this.lblMessage.Text = "" +年龄:+ this.txtAge.Text; +this.lblMessage.Text = "" +爱好:+ this.txtHobit .Text; +``` + +## 页面指令 + +```asp +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Text.aspx.cs" Inherits="_02页面对象.Text" %> +``` + +## 页面对象 + +1. 每个.aspx文件对应一个Page对象 +2. .aspx页面与后台代码类(局部类)合并生成页面类 +3. Page对象是页面类的实例 +4. 所有的.aspx文件(Web窗体页)都继承自System.Web.UI.Page类 + +## 页面传值 + +``` +//在ASP.NET中可以利用视图状态实现页内数据的传递 +//存放信息 +ViewState["nameId"]="0001"; + +//读取信息 +String NameID = ViewState["nameID"].ToString(); + +``` + +## 跨页面传值 + +1. 在Page1中使用IsPostBackUrl指定Page2 +2. 在Page2中的Page_Load编写代码: + +​ 1) 首先判断Page2页面是否有上一页,如果是没有那么Page.Previous == null + +​ 2) 其次使用Previous.FindControl()查找上一页的指定ID值 + diff --git "a/06\345\274\240\345\206\240\350\261\252/05-20ASP.NET\345\206\205\347\275\256\345\257\271\350\261\241.md" "b/06\345\274\240\345\206\240\350\261\252/05-20ASP.NET\345\206\205\347\275\256\345\257\271\350\261\241.md" new file mode 100644 index 0000000..21b4877 --- /dev/null +++ "b/06\345\274\240\345\206\240\350\261\252/05-20ASP.NET\345\206\205\347\275\256\345\257\271\350\261\241.md" @@ -0,0 +1,52 @@ +# 内置对象 + +## ViewState对象 + +ASP.NET专门提供了在一个网页多次请求之间保存信息的对象:ViewState(视图状态)对象来模拟“成员变量”的角色。 + +## Request对象 + +**Request如何获取传递过来的数据** + +- QueryString(查询字符串):获取通过URL传递过来的数据。 +- Form(表单数据):获取通过表单提交传输的数据 +- ServerVariables属性:获取Web服务器变量的集合。 +- Params:以上三种方式传输的内容都可以使用该属性获取。 + +## Response对象 + +- Response.Write() +- Response.Redirect() + +## Request与Response对象的本质: + +- Request对象其实是HttpRequest对象,在页面类自动创建。 +- Request对象封装了用户请求的信息(用户输入的信息或URL参数)。 +- Response对象封装了服务器的响应信息。 + +## Server对象 + +Execute和Transfer均会停止当前页面的执行,并将用户带到由此方法的参数URL指定的页面。 + +### Execute方法 + +URL参数指定的页面处理完毕后,控制权会返回给先前的页面或调用此方法的页面,并且从此方法调用后的语句继续执行。 + +### Transfer方法 + +URL参数指定的页面处理完毕后,控制权不会返回给先前的页面,也不会返回给调用此方法的页面,并且再新页面完成执行时结束。 + +注意: + +Server对象的Transfer方法和Execute方法仅用于Web窗体将Transfer方法的preserverFeom参数为True,可将窗体的QuenryString等信息提供给目标窗体设置。 + +## HTTP协议的无状态 + +**理解无状态特性** + +- 协议对于事务处理没有记忆能力。 +- 对同一个url请求没有上下文关系。 +- 每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况。 +- 服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器。 + +即在ASP.NET 后台中,不再有所谓的“成员变量”(每次都会被初始化)。 \ No newline at end of file -- Gitee From c6c06704b12abea0cd30cb518f445dd79447bfae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=86=A0=E8=B1=AA?= <2716531257@qq.com> Date: Fri, 20 May 2022 02:49:38 +0000 Subject: [PATCH 3/5] =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=2006=E5=BC=A0?= =?UTF-8?q?=E5=86=A0=E8=B1=AA/05-20ASP.NET=E5=86=85=E7=BD=AE=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1.md=20=E4=B8=BA=2006=E5=BC=A0=E5=86=A0=E8=B1=AA/05-20?= =?UTF-8?q?=20ASP.NET=E5=86=85=E7=BD=AE=E5=AF=B9=E8=B1=A1.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20 ASP.NET\345\206\205\347\275\256\345\257\271\350\261\241.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "06\345\274\240\345\206\240\350\261\252/05-20ASP.NET\345\206\205\347\275\256\345\257\271\350\261\241.md" => "06\345\274\240\345\206\240\350\261\252/05-20 ASP.NET\345\206\205\347\275\256\345\257\271\350\261\241.md" (100%) diff --git "a/06\345\274\240\345\206\240\350\261\252/05-20ASP.NET\345\206\205\347\275\256\345\257\271\350\261\241.md" "b/06\345\274\240\345\206\240\350\261\252/05-20 ASP.NET\345\206\205\347\275\256\345\257\271\350\261\241.md" similarity index 100% rename from "06\345\274\240\345\206\240\350\261\252/05-20ASP.NET\345\206\205\347\275\256\345\257\271\350\261\241.md" rename to "06\345\274\240\345\206\240\350\261\252/05-20 ASP.NET\345\206\205\347\275\256\345\257\271\350\261\241.md" -- Gitee From ddb599ebb88630faa8cf025efec9d51fc7a24159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=86=A0=E8=B1=AA?= <2716531257@qq.com> Date: Fri, 24 Jun 2022 03:52:25 +0000 Subject: [PATCH 4/5] d --- .../DBHelper.txt" | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 "06\345\274\240\345\206\240\350\261\252/DBHelper.txt" diff --git "a/06\345\274\240\345\206\240\350\261\252/DBHelper.txt" "b/06\345\274\240\345\206\240\350\261\252/DBHelper.txt" new file mode 100644 index 0000000..d66ec9a --- /dev/null +++ "b/06\345\274\240\345\206\240\350\261\252/DBHelper.txt" @@ -0,0 +1,54 @@ + //创建数据库连接字符串 + static string connetString = "server=.;database=OrderMedicineDB01;uid=sa;pwd=123456;"; + + /// + /// 根据sql语句获取数据库的结果集数据,并返回存储结果集的数据表对象 + /// + /// 要在数据库中执行查询的sql语句 + /// 一个DataTable对象,该对象存储查询结果集 + public static DataTable GetData(string sql) + { + + + //创建DataAdapter对象,作为适配器;用其Fill在数据库执行查询的sql语句,并将查询结果填充到数据集或数据表对象中 + SqlDataAdapter adapter = new SqlDataAdapter(sql, connetString); + + //定义DataTable存储查询结果集,该对象将查询的结果数据存储在内存中 + DataTable dt = new DataTable(); + + //用DataAdapter类的Fill方法将数据库的查询结果集存放到对象dt中,dt对象是存放在内存中的数据表,可以离线操作数据库数据 + adapter.Fill(dt); + + //返回存储查询结果的对象dt + return dt; + } + + /// + /// 使用SqlCommand类,在数据库中执行操作类的sql语句 + /// + /// 要执行的非查询的Sql语句 + /// 返回数据库执行sql语句后的影响行数,大于0操作成功 + public static int ExecuteSql(string sql) + { + + int result = 0; + + //使用数据库连接字符串,创建SqlConnection类对象,用于连接数据库 + SqlConnection connection = new SqlConnection(connetString); + //打开数据库:调用SqlConnection类的Open方法,打开数据库 + connection.Open(); + + //创建数据库操作对象:使用SqlCommand类实例化该对象,通过该对象对数据库执行sql语句; + //初始化参数为要执行的sql语句和连接对象 + SqlCommand command = new SqlCommand(sql, connection); + + //调用SqlCommand类ExecuteNonQuery方法,在数据库中执行该对象中的sql语句; + //ExecuteNonQuery方法返回sql语句执行后的影响行数; + result = command.ExecuteNonQuery();//result保存ExecuteNonQuery方法返回的影响行数 + + //关闭数据库:调用SqlConnection类的Close方法,关闭数据库 + connection.Close(); + + //将执行sql后的影响行数返回给调用该方法的地方,用于判断是否操作成功; + return result; + } \ No newline at end of file -- Gitee From f3e06cac22a88f2f5f9a1a3c5eefff7e049fad94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=86=A0=E8=B1=AA?= <2716531257@qq.com> Date: Fri, 24 Jun 2022 05:05:27 +0000 Subject: [PATCH 5/5] a --- .../\346\263\250\345\206\214.txt" | 27 ++++++++++++++++ .../\347\231\273\345\275\225.txt" | 28 +++++++++++++++++ .../\350\256\242\350\215\257.txt" | 9 ++++++ .../\350\264\255\344\271\260.txt" | 31 +++++++++++++++++++ 4 files changed, 95 insertions(+) create mode 100644 "06\345\274\240\345\206\240\350\261\252/\346\263\250\345\206\214.txt" create mode 100644 "06\345\274\240\345\206\240\350\261\252/\347\231\273\345\275\225.txt" create mode 100644 "06\345\274\240\345\206\240\350\261\252/\350\256\242\350\215\257.txt" create mode 100644 "06\345\274\240\345\206\240\350\261\252/\350\264\255\344\271\260.txt" diff --git "a/06\345\274\240\345\206\240\350\261\252/\346\263\250\345\206\214.txt" "b/06\345\274\240\345\206\240\350\261\252/\346\263\250\345\206\214.txt" new file mode 100644 index 0000000..2cf8f42 --- /dev/null +++ "b/06\345\274\240\345\206\240\350\261\252/\346\263\250\345\206\214.txt" @@ -0,0 +1,27 @@ + protected void Page_Load(object sender, EventArgs e) + { + UnobtrusiveValidationMode = UnobtrusiveValidationMode.None; + } + protected void Button1_Click(object sender, EventArgs e) + { + string name = TextBox1.Text; + string pwd = TextBox2.Text; + string sql = $"select * from UserInfo where UserName='{name}'"; + if (DAL.DBHelper.GetData(sql).Rows.Count > 0) + { + Response.Write(""); + return; + } + //用户名不存在可以注册 + string sql1 = $"insert UserInfo values('{name}','{pwd}')"; + //提示 + DAL.DBHelper.ExecuteSql(sql1); + Response.Write(""); + //自动跳转到登录页 + Response.Redirect("Denglu.aspx"); + + } + protected void Button2_Click(object sender, EventArgs e) + { + Response.Redirect("DengLu.aspx"); + } \ No newline at end of file diff --git "a/06\345\274\240\345\206\240\350\261\252/\347\231\273\345\275\225.txt" "b/06\345\274\240\345\206\240\350\261\252/\347\231\273\345\275\225.txt" new file mode 100644 index 0000000..316fc08 --- /dev/null +++ "b/06\345\274\240\345\206\240\350\261\252/\347\231\273\345\275\225.txt" @@ -0,0 +1,28 @@ + protected void Page_Load(object sender, EventArgs e) + { + UnobtrusiveValidationMode = UnobtrusiveValidationMode.None; + } + + protected void Button1_Click(object sender, EventArgs e) + { + string name = TextBox1.Text; + + string pwd = TextBox2.Text; + string sql = $"select * from UserInfo where UserName ='{name}' and Password = '{pwd}'"; + if (DAL.DBHelper.GetData(sql).Rows.Count == 1) + { + Session["Id"] = DAL.DBHelper.GetData(sql).Rows[0]["UserId"]; + Response.Redirect("DingYao.aspx"); + } + else + { + Label1.Visible = true; + Label1.Text = "用户名或密码错误"; + } + + } + + protected void Button2_Click(object sender, EventArgs e) + { + Response.Redirect("ZhuCe.aspx"); + } \ No newline at end of file diff --git "a/06\345\274\240\345\206\240\350\261\252/\350\256\242\350\215\257.txt" "b/06\345\274\240\345\206\240\350\261\252/\350\256\242\350\215\257.txt" new file mode 100644 index 0000000..a2026b7 --- /dev/null +++ "b/06\345\274\240\345\206\240\350\261\252/\350\256\242\350\215\257.txt" @@ -0,0 +1,9 @@ + protected void Page_Load(object sender, EventArgs e) + { + UnobtrusiveValidationMode = UnobtrusiveValidationMode.None; + } + + protected void Button1_Click(object sender, EventArgs e) + { + Response.Redirect("GouMai.aspx"); + } \ No newline at end of file diff --git "a/06\345\274\240\345\206\240\350\261\252/\350\264\255\344\271\260.txt" "b/06\345\274\240\345\206\240\350\261\252/\350\264\255\344\271\260.txt" new file mode 100644 index 0000000..72ec691 --- /dev/null +++ "b/06\345\274\240\345\206\240\350\261\252/\350\264\255\344\271\260.txt" @@ -0,0 +1,31 @@ + protected void Page_Load(object sender, EventArgs e) + { + UnobtrusiveValidationMode = UnobtrusiveValidationMode.None; + } + + protected void Button1_Click(object sender, EventArgs e) + { + string mName = DropDownList1.Text; + string rName = TextBox1.Text; + string rPhon = TextBox2.Text; + string rAdd = TextBox3.Text; + int state = 1; + DateTime dt = DateTime.Now; + int stype = 1; + if (RadioButton2.Checked) + { + stype = 0; + } + string remake = TextBox4.Text; + + string sql = $"insert OrderInfo(MedicineName,UserId,AddTime,RealName,Mobile,Address,State,SendType,Remark)" + + $"values('{mName}','{Session["Id"]}','{dt}','{rName}','{rPhon}','{rAdd}','{state}','{stype}','{remake}')"; + int result = DAL.DBHelper.ExecuteSql(sql); + if (result > 0) + { + Response.Redirect("DingYao.aspx"); + } + else + { + Response.Write(""); + } \ No newline at end of file -- Gitee