精华区 [关闭][返回]

当前位置:月光软件>>讨论区精华>>〖软件开发〗>>● ASP>>★ASP的延伸★>>ASP.NET>>对<从ASP迁移至ASP+>的补充!

主题:对<从ASP迁移至ASP+>的补充!
发信人: dgxy2001(东格逍遥2001)
整理人: dongbao(2001-03-10 09:05:03), 站内信件
该控件在表格提交之后,触发ValidateUserName函数。接着使用DataSet对数据库进行查询,看是否存在与用户请求的用户名同名的记录。如果该用户名已被占用,则返回一条记录,否则不返回记录。为了进行检验,我们将结果绑定到一个隐藏的DataGrid(将visible属性设为false),然后检验它的Items集合,以及Count属性。如果Count大于0,则请求的用户名已存在。如果用户名已存在,我们返回一条信息;否则,我们继续处理表格。

   请注意这是种迂回的验证方式。实际上有一个DataReader控件是专门针对这种功能设计的。DataReader可以无须绑定数据到DataGrid而进行这种类型的验证。然而在ASP+的Alpha版本中,DataReader存在着一个bug,而且不能正常工作。这个问题在Beta1版中会得到解决。我们使用的迂回方式的代码可以让本站点在基于.NET框架的ASP+下正常运行。
一旦所有的输入都经过了验证,我们被导向cookie.aspx,通过该页将数据插如数据库,同时将用户登录。在signup.aspx中,一旦数据得到验证,我们将所有的表格值存入会话变量中,然后进行重定向:

   < script language="VB" runat="server">

   Sub Page_Load(Source As Object, E As EventArgs)

   If Page.IsPostBack And Page.IsValid Then

   'Create the Session Variables froim the Form Fields

   Session("strFName") = Request.Form("txtFirstName")

   Session("strLName") = Request.Form("txtLastName")

   Session("strAddress") = Request.Form("txtAddress")

   Session("strCity") = Request.Form("txtCity")

   Session("strState") = Request.Form("txtState")

   Session("strZipcode") = Request.Form("txtZipcode")

   Session("strEmail") = Request.Form("txtEmail")

   Session("strPhone") = Request.Form("txtPhone")

   Session("strUserName") = Request.Form("txtUserName")

   Session("strPassword") = Request.Form("txtPassword") 

   Response.Redirect("cookie.aspx")

   End If

   .. . . 

   End Sub

   < /script>

   在cookie.aspx中,我们以会话变量的值做输入来创建一个ANSI-SQL语句。为了向数据库中添加值,我们利用ADOCommand对象。我们将SQL语句及ADOConnection对象传递给ADOCommand。设置了ADOCommand后,我们打开连接,调用ADOCommand.Execute:

   < script language="VB" runat="server">

   Sub Page_Load(Source As Object, E As EventArgs)

   Dim cnCon As New ADOConnection

   Dim dcAdd As ADOCommand

   Dim strSQL As String

   strSQL = "INSERT INTO Students " & _

   "(FirstName, LastName, Address, City, State, " & _

   "Zipcode, Phone, Email, UserName, [Password] ) " & _

   "VALUES (" & _

   "'" & Session("strFName") & "', " & _

   "'" & Session("strLName") & "', " & _

   "'" & Session("strAddress") & "', " & _

   "'" & Session("strCity") & "', " & _

   "'" & Session("strState") & "', " & _

   "'" & Session("strZipcode") & "', " & _

   "'" & Session("strPhone") & "', " & _

   "'" & Session("strEmail") & "', " & _

   "'" & Session("strUserName") & "', " & _

   "'" & Session("strPassword") & "'" & _

   ")"

   cnCon = Connect.ConnectToDB()

   dcAdd = New ADOCommand(strSQL, cnCon)

   cnCon.Open()

   dcAdd.Execute()

   End Sub

   < /script>

   新的数据已经添加进了数据库,我们的新生也登录进来了。当学生报名参加一门课程时,类似的功能被用来向报名表插入Student_ID和Session_ID。

   ===总结===

   尽管这只是对我们将一个小型ASP站点迁移至ASP+站点要面临的一些挑战的简要的概括,我们仍然涉及了一些主要的问题。其他一些要做的修改是很小的。当然,我们还没有利用ASP+的大部分的新特性,像web服务,处理外的会话状态,以及新的认证结构,然而我们已经有了一个良好的开端。现在我们的站点正运行于.NET框架上,也运用了ASP+的某些新特性,比如基于作出请求的浏览器而渲染的HTML/DHTML,提供不同验证技巧的新服务器控件,还有能使我们在无须创建额外对象的情况下一次取回多个表的ADO+ DataSets。

   




[关闭][返回]






转载请注明:转载自 月光程序代码网 [ http://www.moon-soft.com ]