通过的一般处理程序将学生信息添加到表中怎么操作

核心提示一、概述#NET编程#在ASP.NET 中,有一种程序,它没有界面,是一个HttpHander事件处理程序,它可接受HTTP请求,并且还可以使用C#代码编写程序并处理,起到一个中间件的作用。相对于ASP.NET Web窗体页面接受HTTP请

一.概述

#NET编程#在ASP.NET,有一个程序,它没有接口,是一个HttpHander事件处理程序。它可以接受HTTP请求,也可以使用C#代码编写程序并进行处理,从而充当中间件的角色。

与接受HTTP请求的ASP.NET Web窗体页面相比,通用处理程序具有最佳的性能,并减少了UI界面的处理。

这里使用通用处理程序接受jQuery的AJAX请求,实现异步添加数据的功能。

在ASP.NET中,通用处理程序实际上是一个类,但它应该继承IHttpHandler接口,并且还在该接口中实现IsReusable属性和ProcessRequest方法。

处理HTTP请求主要在ProcessRequest方法中完成。也就是说,我们的业务处理代码将放在这个方法中。

.NET全场课程-从0基础到深入学习 线上.NET培训课程淘宝¥800购买

IsReusable属性的类型为bool,如果它返回true,则可用于处理多个HTTP请求。如果返回false,则用于处理HTTP请求。

接收到的Http请求在程序的processRequest方法中进行处理。Member IsReusable指定IhttpHandler的此实例是否可用于处理多个请求。

在Visual Studio 2019中,通用处理程序以类文件的形式存在。创建后,将生成以下C#代码:

ASP.NET 一般处理程序

图1

通用处理程序可以直接在浏览器中运行。

图1中生成的void ProcessRequest方法中的代码是微软给出的一个示例,用于将字符串“Hello World”写入HTTP响应流。

这里,让我们在浏览器中运行它,在VS2019中按F5,并输入通用处理程序的全名:

*.ashx文件是可以运行的

图2

在图2中,运行了一个完整的通用处理程序,并返回了文本内容。这是一个简单的HTTP请求,只是我们在浏览器中直接使用URL请求。

如果放在jQuery的AJAX请求中,AJAX相当于一个浏览器,发出HTTP请求。

其次,创建一个通用处理程序

无论哪个版本的Visual Stuido IDE都可以创建通用处理程序,可以选择通用处理程序的模板来创建。

VS2019添加一般处理程序

图3

在图3中,选择Add and New Item,如图4所示:

根据模板创建一般处理程序

图4

在图4中,选择“General Handler ”,然后输入名称。

注意:通用处理程序的扩展是。ashx不同于。aspx。

对于一般的处理程序,我们要做的只是在继承IhttpHandler接口的类的ProcessRequest方法中。并且传递的相关参数可以在HttpContext类型的参数中进行处理。

。ashx必须包含IsReusable属性,如果要在ashx文件中使用Session,必须实现IRequiresSessionState接口。

利用Jquery的AJAX技术,可以向ASHX提交或返回数据。目前,Jquery的AJAX有两种方式与ASP.NET程序交互:

通用处理程序ASHX在ProcessRequest方法中处理。ASPX页面的静态方法。

第2部分:使用Ajax提交数据

一.效果图

首先看最终的效果图,做一个简单的表单,然后收集表单数据,通过AJAX提交给通用处理器。

图5

这个表单是用HTML静态页面制作的。当您点击“保存”按钮时,它将被提交给*的一般处理程序。ashx通过jQuery的ajax方法,从而将客户端的数据提交给服务器,最终存储在数据库中。

第二,编写HTML代码

在项目中创建一个名为AddData.html的页面,并编写以下HTML代码:

一旦每个人都被编程,每个知识都是一个案例。添加学生信息名称:性别:男人和女人年龄:国籍:中国、德国、美国

这段HTML代码描述如下:

使用表格布置表单页面。添加了对jQuery的引用。CSS文件用于控制样式。*.还引入了js文件来独立处理AJAX请求。这个Html页面运行后的效果如下:

Html表单-添加学生信息

图6

在这个图6中,由于没有应用任何样式,所以显示的效果相对紧凑,但整体框架已经出来了。

第三,编写风格代码

现在,我们编写表单的CSS样式并创建一个单独的*。CSS文件来存储CSS样式代码。

StyleSheet.css文件的内容如下:

表格{宽度:500px背景色:# ddd} tr {身高:35px行高:35px背景色:# fff} td {左填充:5px} .td1 {宽度:100px背景色:# 808080;} .td2 {宽度:200px}.页眉{ background-color:# 808080;颜色:# ffffff文本对齐:居中;}

现在,让我们再次运行HTML页面。有了样式,效果会更漂亮:

添加学生信息表单

图7

与图6相比,图7的形式不仅美观,而且行与行之间有间隔距离。看起来很美,能给人更好的体验。

第四,编写Javascript代码

在这里,我们创建一个名为Javascript.js的文件,在这个文件中处理AJAX的远程请求。这样做的好处是JS文件很容易维护,不会和hTML代码混在一起。

JS代码内容如下:

函数saveData {var name = $。valvar sex = $。valvar age = $。valvar place = $ .find.textvar data = {姓名:姓名,性别:性别,年龄:年龄,地点:地点};$.ajax { if { alert}},错误:函数{ alert}});}

在这段代码中,http get用于向通用处理程序提交数据。使用get request的好处是在通用处理程序中很容易接收到值,而如果使用POST submission,会被stream接收,不容易处理。

在这里,它作为JSON对象传递给通用处理程序。

五、编写通用加工程序代码。

在这里,我们将AJAX提交的表单数据发送到通用处理程序,因此我们需要编写通用处理程序中最终数据处理的代码:

使用系统;使用系统。集合。泛型;使用系统。木卫一;使用系统。Linq使用系统。文本;使用系统。Webnamespaceyidosoft . edu . ajaxadddata {////Handlertodata//公共类Handlertodata的摘要说明:ihttphandler { public void processrequest { context . response . content type = " text/plain ";变量名称=上下文。请求["名称"];变量性别=上下文。要求[“性”];var年龄=背景。请求[“年龄”];var place =上下文。请求[“地点”];DBHelper db = new DBHelper字符串sql = $ "插入到学生值中";int r = db。ExecuteNonQuery语境。回复。写;} public bool is reusable { get { return false;}}}}对于数据库的处理,使用了封装的DBHelper.cs类库,在这个类库中添加数据的方法://////返回受影响的行数//insert///update///delete///public int executenonquery { conn . open;SqlCommand cmd = new SqlCommandint rows = cmd。ExecuteNonQuery连接关闭;返回行;}

使用此ExecuteNonQuery方法添加、删除和更新数据。

不及物动词运营结果

上面的代码都写完了,我们用VS2019在谷歌Chrome中运行结果:

通过ajax添加成功

图8

在图8所示的表单中,输入并选择学生信息后,点击“保存”按钮开始通过ajax技术提交表单,提交给通用处理程序。在一般的处理程序中,首先接收传递过来的值,然后将这些值组成SQL语句,最后保存在数据库中。

现在,让我们打开SQL Server 2019中的Student表,查看表单数据是否提交成功:

SQL Server 2019添加后的表数据

图9

在图9中,我们看到Student表中的最后一段数据是由AJAX技术添加的。

这意味着我们上面写的代码可以100%正常运行,可以供其他项目借鉴。

单选|对于ajax同步,确实如此

服务器必须返回值,才能向下执行。服务器不需要返回值,向下执行。不论服务器是否返回值,向下执行。打开APP进行投票

最后,附上完整的解决方案和源代码:

链接:https://pan.baidu.com/s/14SJf9pIK0XFa-B_jyJIPvQ密码:xekz

附加SQL语句以创建学生表结构:

在目录表[dbo]上使用[YidoDb]GOSET ANSI _ NULLS on GOSET QUOTED _ IDENTIFIER。[Student]不为空,[SName] [nvarchar]为空,[SSex] [nchar]为空,[SAge] [int]为空,[SNA nationality][nvarchar]为空,主键群集与[PRIMARY]在[PRIMARY]上)

 
友情链接
鄂ICP备19019357号-22