1、综合实验一: 用户登录,回顾:基础c#知识基础数据库操作目标:1.关于Web项目 2.ADO.NET (重点)2.实现登陆模块 (重点)3.非空控件,(1)创建Web项目, Web页(2)界面介绍(3)项目文件(4)虚拟目录(5)基本Web控件(6)基本事件,一、关于Web项目,项目文件,新建了一个ASP.NET项目后,便可在新建的位置生成项目文件,一般自动保存在C盘下Inetpubwwwroot文件夹下。在界面中,我们可以在“解决方案资源管理器”下找到项目及其部分内容,并对其进行一些操作。Web项目的项目文件,虚拟目录1,在ASP.NET中我们通过虚拟目录浏览网页。设置虚拟目录 1.依次点击
2、“开始”“控制面板” 在左侧点击“切换到经典视图” 双击“管理工具” 双击“Internet 信息服务”,进入IIS。展开后点击”网站”默认网站”右击”新建”虚拟目录”,新建一个虚拟目录 (XP) 2.或者在桌面上右击”我的电脑”管理”服务和应用程序”Internet信息服务”“默认Web站点”右击“新建”“虚拟目录” (2000),虚拟目录2,我们直接在文件菜单下新建Web项目,这时系统将自动建立虚拟目录。当我们把自动保存在C盘下的Web项目移开时或拷贝其它项目到本机时,若要浏览,就必须更改其路径或再建立一个虚拟目录更改其路径。,基本Web控件,ASP.NET提供了许多Web窗体控件,使用它
3、们可以高效而快速地建立Web应用程序。主要内容有:文本控件 按钮控件选择控件图形显示控件数据验证控件数据绑定控件等,Label控件,Label控件:又称标签控件或文本显示控件用途:输出文本信息,但输出的信息不能编辑,所以常用来输出标题,显示处理结果。 常用属性: ID属性:控件的唯一标识,也就是名称(遵循标识符的命名规则,几个控件的ID名不能同名) Text属性:获取或设置标签上的文本,TextBox控件,TextBox控件:也称文本框控件。用途:输入信息并显示,编辑,修改文本内容。常用属性:ID属性:控件的唯一标识,也就是名称。Text属性:获取或设置标签上的文本。TextMode 属性:指
4、定文本输入框是一个单行文本输入框(Single)、多行文本输入框(Multiline)或者密码输入框(Password)。默认值为“Single”。AutoPostBack属性:决定控件中文本修改后,是否自动回发到服务器。该属性默认值为false,即修改文本后并不立即回发到服务器,而是等窗体被提交后一并处理。,TextBox控件,常用的事件TextChanged事件:文本框的内容发生更改导致窗体回发服务器时触发。注意,是否触发该事件与AutoPostBack属性有关。,Button控件,Button控件:也称按钮控件用途:Button提供了一种通用的单击按钮传送信息的方式,能够把页面的信息返回
5、到服务器。一般是通过单击按钮产生一个事件,完成相应的功能。常用属性: ID属性、Text属性 Click事件:单击按钮时所产生的事件,Button控件,VS中有以下三种类型的按钮控件:Button控件:与Windows窗体的Button控件用法相同。LinkButton控件:外观与Hyperlink控件相同,但在功能上与Button控件完全相同。ImageButton控件:以图片形式显示的按钮。 三种类型的按钮在鼠标单击时都可以将窗体提交给服务器,并触发服务器端对应的Click事件,然后在服务器端执行相应的事件代码。,一般控件共有属性,除了上面讲过的ID,Text 属性外,还有其它一些大多数控
6、件都有的几个属性:1.控件的宽(Width)和高(Height)2.字体属性(Font)3.颜色属性BackColor,ForeColor4.可见性(Visible)和有效性(Enabled )属性,事 件,在学习下面两个具体事件之前,我们先了解一下事件的相关内容:究竟什么是事件呢?事件由对象引发,我们可以提供代码来处理事件。在事件发生时来执行这些代码,完成相应功能。所以也称事件处理程序,它本身都是简单的函数。,Page_Load事件,Page_Load事件:是由页面加载引发的。即页面一经刷新或浏览便被执行,也可以说初始化页面。它执行事件内的代码.Page_Load事件比较像C#中的主函数,都
7、是程序执行的入口点。,Button_Click事件,Button_Click事件:由单击按钮引发.通过单击按钮,发送消息到服务器,经过处理,返回结果。发送的消息即为事件内的代码。演示:,在ASP.NET中,要输出一些内容,我们不再使用C#中的输出方法Console.WriteLine();使用以下语法输出:Response.Write(“ ”); 括号中的参数为要输出的字符串其实Label控件,完成的也是一种输出功能。它和Response.Write()的不同之处在于: Response.Write()的输出位置在页面的左上角; 而Label控件可以页面的任何一个位置输出,输 出,在ASP.N
8、ET中,要完成从一个页面跳到另一个页面的跳转功能,使用以下语句:Response.Redirect(“Default.aspx ”); 其中括号的参数为要跳转到的目标页面。,页面的跳转,ASP.NET采用的是动态网页技术,主要是与数据库交互操作。那么怎样把我们的后台与数据库连接起来,进行操作呢?这里,.NET提供了一个叫ADO.NET的数据访问模型。ADO.NET是以.NET框架为基础的全新数据操作模型,是专门为.NET平台上的数据访问而设计的。ADO.NET支持多种数据源。提供了程序访问数据库的方法.,ADO.NET,1。ADO.NET主要包含五个大类(以SQL为例):SqlConnecti
9、on类,SqlCommand类,SqlDataReader类,SqlDataAdapter类,DataSet类.。2。这五个类来完成访问数据库的一般过程:连接执行操作返回结果3。要使用ADO.NET下面这些类,要导入命名空间:using.System.Data;using.System.Data.SqlClient;,ADO.NET主要内容,该类用来连接数据库,分两步:1.实例化一个Connection对象(需要提供一个连接字符串参数,这个字符串包括连接的服务器名称,允许操作此服务器的用户名;密码;连接的数据库名。)2. 调用Connection对象的Open()方法。使用格式:SqlConn
10、ection conn=new SqlConnection(“连接字符串”);conn.Open();,SqlConnection类,在连接数据库后,要对数据库的数据源进行一系列操作,SqlCommand这个类用于完成对数据源的各种操作,包括:查询,插入,更新,删除记录。对数据库进行操作,是通过创建一个SqlCommand对象,来执行SQL语句。格式:SqlCommand cmd=new SqlCommand(“执行的sql语句”,操作的数据库对象);这里有两个参数:第一个是执行的sql语句,是一个字符串;第二个是被操作的数据库对象。,SqlCommand类,SqlDataReader类,前面
11、通过SqlConnection类,SqlCommand类对数据库进行操作后,如果我们执行的SQL语句是查询语句,需要返回结果,那么查询的结果用SqlDataReader存放。SqlDataReader是一个数据阅读器,存放查询语句查询到的记录,从数据源中检索只读,且只向前的数据流。它是通过SqlCommand对象的ExecuteReader方法从数据源中检索行创建的。要想读取SqlDataReader数据集中的数据,可以使用SqlDataReader 类下的Read()方法。,登录模块的介绍功能分析流程确定,登 录,登陆模块是网络应用系统中最基本的模块之一,绝大多数网站都需要有登陆验证功能。登
12、陆模块的主要作用是使系统能够识别当前用户,同时控制用户对资源的访问。通常用户必须提供相应的凭据(如用户名,密码等)来完成身份验证,登录系统这一过程。下面,我们将通过与底层数据库的互连,实现一个简单的登录模块。,1、关于登陆模块,2、登陆功能分析,一个登陆模块要完成的功能是:由客户提供相应的凭据(这里我们的例子使用用户名和密码作凭据)。提交给服务器;服务器将信息与数据库存储的信息进行身份验证;如果通过验证则允许做下一步操作,否则拒绝服务.,3、登陆流程,根据对登陆模块功能的分析,我们可以确定要完成整个登陆模块的一个流程:(1)根据功能的需要简单画出界面,确定要使用的控件,并在VS中设计前台页面(
13、2)数据库设计(3)在VS中完成后台代码设计(4)这样一个简单登陆模块完成,试运行它(5)优化登录模块,简单界面,数据库、表,新建一个数据库,和一张用户表在表中插入几条记录表的设计如下:,后台代码双击按钮,产生Button_Click事件;注意:因为我们是要单击登陆按钮,将信息提交。所以我们的代码一定要写到按钮的Click事件里面。在事件内编写相关代码。,如何写代码,首先理清代码流程:根据前边功能的分析,流程操作我们知道登录是要将客户填写的信息提交到数据库,进行身份验证,根据验证结果,然后再作相应操作。那么相关的代码应该是对数据库用户表的一个查询操作,然后根据查询的结果判断登录是否成功。下面使
14、用ADO。NET完成此功能。步骤:导入命名空间连接数据库执行操作返回结果读取结果,判断登录是否成功演示:,如何写代码,SqlConnection con=new SqlConnection(Server=.;uid=sa;pwd= ;database=demo);con.Open();String sql=select * from userinfo where UserName=+TextBox1.Text+ and PassWord=+TextBox2.Text+;SqlCommand cmd=new SqlCommand(sql,con);SqlDataReader dr=cmd.Exe
15、cuteReader();if (dr.Read()Response.Write(登陆成功);elseResponse.Write(登陆失败);dr.Close();con.Close();,编译执行编译:Ctrl+Shift+B执行:(1)右击页面“在浏览器中查看”(2)Ctrl+F5 或F5,调试执行,在IE中查看。优化,数据验证控件(1),RequiredFieldValidator控件非空验证控件,主要用来验证对应控件的值是否为空。如果为空,则不允许提交,要填写完内容后提交。通常把它加在用户名,密码等必须填写的字段上。重要常用属性: ControlToValidate属性,被验证控件的名称; ErrorMessage属性,控件出错时,错误汇总内显示的信息(未设置Text时的默认错误信息); Text属性,出错时默认显示的信息。,作业,试着在VS中新建一个Web项目,完成登录功能。,