ASP.NET程序设计教学过程中存在的问题浅析
2019-12-06李志刚
李志刚
【摘要】ASP.NET程序设计的教学过程中学生存在前导课程没有学好,不会页面传值,字段设置不合理等问题。笔者针对这些问题给出了建议。
【关键词】页面传值 Command DataSet
一、问题
随着时代的发展,软件技术专业发展越来越快,ASP.NET程序设计是软件技术的一门核心的专业课,但在教学过程中学生存在较大的问题,主要问题如下:
(1)ASP.NET程序设计的前导过程是C#程序设计和数据库,很多学生基本的SQL都不会写,C#中类,对象,多态,封装等概念理解不清晰。
(2)对单选按钮的使用掌握不太好,如设计一个性别的两个单选框,发现男和女都可以选择。
(3)对下拉框的级联不知道如何实现,如学院,专业,班级之间的级联。
(4)对如何进行页面传值掌握不太好,基本上遇到页面传值就用Session,对Session的不足也不太清楚,只知道Cookie有安全问题。
(5)对六种数据验证控件的应用掌握不好,不知道验证控件如何选择,如要求用户名是6-16位的字母数字结合,邮箱不知道用什么验证控件。
(6)Command对象有ExecuteScaler(),ExecuteReader(),ExecuteNonQuery()不知道如何去选择和使用。
(7)Command对象和DataSet对象都可以进行数据的增加删除修改,不知道该如何选擇。
(8)界面设计不好看。
针对以上问题,我认为应采取以下措施:
(1)复习数据库和C#的基础知识,掌握基本的SQL语句的书写,包括增加删除修改查询特别是多条件查询和模糊查询;理解类和对象的关系,知道如何去创建一个对象,如何调用对象的属性和方法。
(2)对于多个单选按钮,一定要设置groupname的值,如页面只有性别的两个单选按钮,可以把这两个单选按钮的groupname的值设置成一样的。如果页面有多组单选按钮,如性别和最喜欢的颜色,需要把两组单选按钮的groupname设计成不同的值。
(3)实现下拉框的级联首先要设计数据表,如要实现学院专业班级的级联,需要设计学院代码表,专业代码表和班级代码表,其中学院代码表中包括学院id,学院名称;专业代码表包括专业id,专业名称和所属学院id;班级代码表包括班级id,班级名称和所属专业id。用学院代码表填充学院下拉框,第二个下拉框根 据第一个下拉框的学院id的值在专业代码表中查找相关专业第二个下拉框根据第二个下拉框的专业id在班级代码表中查找相关班级。
(4)页面传值有五种:QueryString,Session,Cookie,Application,Server.Transfer。其中QueryString是最简单的页面传值,适合传一些不重要的简单的值,如编号,它会把传的值放在ie地址栏上,有一定的安全隐患难。Server.Transfer用法和QueryString使用方法类似,但ie地址栏还人显示原来页面的地址,对用户不太方便。Session是使用最多的页面传值,但过多的使用Session会消耗较多的服务器资源。Application是全局变量,在使用前要加锁,使用完后要解锁,一般用于统计网站的访问人数。Cookie是储存在客户端的,如常用的记住帐号密码就是用的Cookie。
(5)验证控件有六种:非空验证,范围验证,比较验证,正则表达式验证,用户自定义验证和验证汇总。非空验证是验证必填项,如用户名,密码;范围验证是验证数据是否在一定的范围内,如年龄应该在0-100岁之间;比较验证一般用于密码和确认密码的验证;正则表达式验证应用较广,如邮箱、手机号、ip地址、用户名,如用户名要求以字母或下划线开头,后面紧跟着字母、数学,长度为6-16位;用户自定义验证一般用于自己设定的规则,包括用户名不能重复,要输入一奇数。验证汇总是把所有的验证结果汇总在一起显示,包括摘要形式和弹出对话框的形式。
(6)command对象有ExecuteScaler(),ExecuteReader(),ExecuteNonQuery()三个方法。ExecuteScaler()是返回首行首行,适合于和sql语句中的聚和函数一起使用,如查询用户密码是否存在,可以用count(*)来实现;找同最高单价可以用max(price)来实现。ExecuteReader()返回的是只读对象,可以进行查询数据是否存在和读取数据库中的数据,如根据用户名和密码查询角色字段。ExecuteScaler()是返回影响的行数,对于查询来说,不管是否查询到数据,ExecuteScaler()返回值都是-1,它适合于增删改。所以,如果只需要查询数据是否存在,用ExecuteScaler()比较方便,如果要取数据库中的数据,需要用ExecuteReader(),如果是增加删除修改那么需要用ExecuteNonQuery()。
(7)DataSet和DataAdapter也可以进行数据的增加删除修改删除,它在对数据进行操作时不需要去打开和关闭数据库连接,但用它来进行数据的增加,需要先新建一个数据行,然后再给每一列数据进行赋值;它进行数据更新时,首先要取到需要更新的那一行,然后再对每个字段进行修改;它进行数据删除的时候,首先取到要删除的那一行,直接删除数据行就行;因为用它进行数据增删改的时候,代码量会比较大,所以DataSet一般用于查询数据是否存在,读取数据和显示数据。
(8)对于界面不好看的问题,需要复习以前学过的HTML,CSS和JS,还可以参考现有的网站,看它们有哪些可取之处。