WEB开发网
开发学院WEB开发ASP 使用asp+中的若干问题及解决方案 阅读

使用asp+中的若干问题及解决方案

 2000-11-09 10:13:45 来源:WEB开发网   
核心提示:综述:在这篇文章里 豆腐 简单扼要的讲了一下在asp+编程中我们可能要遇到的问题以及遇到这些问题的解决方法,相信大家 在看完这篇文章以后,使用asp+中的若干问题及解决方案,对于asp+的编程就会觉得是非常的简单,我在这篇文章文章中主要讲了一些比较中级的应用,当然 我这里 只是 一些简单的例子 和讲解,具体在 开发的
综述:
在这篇文章里 豆腐 简单扼要的讲了一下在asp+编程中我们可能要遇到的问题以及遇到这些问题的解决方法,相信大家 在
看完这篇文章以后,对于asp+的编程就会觉得是非常的
简单,我在这篇文章文章中主要讲了一些比较中级的应用,如果您对于asp+目前还是处于入门阶段,建议您去
1 如何使用 asp+ 获取提交的form元素

我们首先来利用一个很简单的例子来说明 一下 asp+ 给我们带来的 server-side control 的好处
首先我们写一个form 为了方便起见,我不在 描述 <html> 等和我们的文章没有直接关系的标签


代码:
--------------------------------------------------------------------------------

  <SCRipT language="VB" runat="server">   Sub test(Sender As Object, Args As
EventArgs)    'Sender , Args 这两个 参数是 click 事件的参数    Response.Write ("您的名称是 : '" &
txtName.value & "' .”)    Response.Write ("您填写的Email是: '" & txtEmail.value &"'.")   End
Sub  </SCRIPT>  <form method=post>   <table align = center>    <tr><td>    您的名称:<INPUT
type="text" id="txtName" runat="server">    </td></tr>    <tr><td>    您的Email 是:<INPUT
type="text" id="txtEmail" runat="server">    </td></tr>    <tr><td>     <INPUT type="submit"
value="提交" runat="server"      onserverclick="test">    </td></tr>   </table>    </form>

--------------------------------------------------------------------------------


这样我们写的程序 就如同 一个 vb 的 frm 一样(据说在 vb 7.0 中的确会增加这样的功能)
有的人也会说他们非常希望 和 以前的 asp 程序保持 连续性,没有关系,如果 您 不喜欢使用
txtName.Value 这样的语法的话,仍然可以使用 request.form(txtName),怎么样,够Cool 吧。

2。ASp+ 中处理 数据库

asp+ 引入了很多的 server-side 的数据库组件,就如同我们在 VB 的的数据库控件DBList,DBGrid 一样
如果在 VI 中使用过 RDS 组件的话,大家一定对MS 很早就想 推出的这个东东 有一个 大致的了解了,不过
asp+ 就是asp+ 不是asp,MS 确实有大动作在 asp 上做

代码:
--------------------------------------------------------------------------------

  <%@ Page Language="VB"%>  <%@ Import Namespace="System.Data" %>  <%@ Import
Namespace="System.Data.ADO" %>  <script language="VB" runat="server">   Sub search_OnClick(Sender As
Object, E As EventArgs)   '这底下的语句告诉我们,在ASp+ 中我们终于可以 放弃variant 这种效率低下的数据类
型了   Dim connobj As ADOConnection   Dim dtsCmdobj As ADODataSetCommand   Dim dtSobj As
DataSet   Dim str_sql As String   dim conn_str As String   str_sql = "select * from
table_name"   conn_str = "DBQ=" & Server.MapPath("database.mdb") &_         ";Driver={Microsoft
access Driver (*.mdb)};"   connobj = New ADOConnection(conn_str)   dtsCmdobj = New ADODataSetCommand
(str_sql, connobj)   dtSobj = New DataSet()   dtsCmdob.FillDataSet(dtsobj, "test")   
dtgrid.DataSource = dtsobj.Tables("test").DefaultView   dtgrid.DataBind()  End
Sub</script><html><body><form action="db.aspx" method="post" runat="server"><asp:Button type="submit"
id="query" text="查询" OnClick="query_OnClick" runat="server" /></form><asp:DataGrid id="dtgrid"
HeaderStyle-Font-Bold="True" ToolTip="data Grid PRovided with asp+" runat="server"
maintainviewstate="false" /></body></html>

--------------------------------------------------------------------------------


看到了吗??这不是VB 是什么???有的朋友可能在 VB 下就很不 习惯 VB 的 数据绑定,不错,Asp+也提供了 一个叫
做 DataSet 的集合(Object)
我们刚才也已经看到了,
我们可以不使用bDataBind() 方法,直接用 Response.write 写出来,Let's Look!

代码:
--------------------------------------------------------------------------------

  <%@import namespace="system.data.SQL"%>  <SCRIPT LANGUAGE="vb" RUNAT="server">  Sub displaydata()   
Dim dtReader AS SQLDataReader   Dim sqlcmd AS SQLCommand   Dim sqlserver AS String   Dim sql AS
String   sqlserver = "server=my.sql.database;uid=userid;passWord=password;"   SQL = "Select * from
table_name"   sqlcmd = New SQLCommand(sql,sqlserver)   sqlcmd.ActiveConnection.Open()   
sqlcmd.execute(dtreader)   Response.write("再进行数据库open后,我们来显示这个Table 的某一个字段的数
值")   While dbRead.Read()    response.write (dtreader.Item("test_column") & "<br>")   End While  
End Sub</SCRIPT>

--------------------------------------------------------------------------------

我们已经看到了 如何将数据库里的 数值从数据库中 读取出来,我们 再来看 一个例子,看看是如何
修改数据库的内容的



代码:
--------------------------------------------------------------------------------

 <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SQL" %> <HTML> <BODY>  
<script language="VB" runat="server">    Sub Page_Load(Src as Object, E as
EventArgs )          ‘这个事件在 页面载入的 时候 触发     Dim myConnection as
SQLConnection        myConnection = new SQLConnection("SERVER=sqlserver; UID=sa; PWD=;
DATABASE=test")        Dim myCommand as SQLCommand      dim sql as string     
sql="insert into test(testcol) values('1234')"     'sql="update test set
testcol='1234'"     'sql="delete from test"     myCommand = new SQLCommand("INSERT into test
(testCol) VALUES ('1234')", myConnection)           myConnection.Open()        
myCommand.Execute()        myConnection.Close()            Response.Write("更新数据成
功")    End Sub  </script>  </BODY> </HTML>

--------------------------------------------------------------------------------


数据库搞完了,我们下面来看看 如何 进行一些 在 asp+ 无法实现的 功能
3.上传,发送Email 和 操作 socket
在前面的文章中,我已经举过了 上传和 操作socket 实现 域名查询的完整例子,在这里我们主要看
看用Asp 发送Email

代码:
--------------------------------------------------------------------------------

 <% @Page Language="C#" %> <% @Import Namespace="System.Web.Util" %> <%  MailMessage mailMsg = new
MailMessage();  mailMsg.To = "roboo@21cn.com"; //信件的接收人  mailMsg.From = "roboo@21cn.com"; //发
信人  mailMsg.Subject = "这是个用 asp+ 发送的 测试信件";  mailMsg.BodyFormat = MailFormat.Text; //说明
信件的格式是 text 格式,我们当然可以设定 MailFormat.Html  mailMsg.Body = "带有附件的";  
mailMsg.Attachments.Add(new MailAttachment("c:\\test.bmp")); //这就是 附件  SmtpMail.Send(mailMsg);  //
发信  Response.Write("邮件发送成功");%>

--------------------------------------------------------------------------------



4.在asp+中如何进行错误处理?
在asp 中 on error resume next 是我们唯一的处理方式,现在在asp+ 中又会是什么呢?

说来简单,只要我们在页面的前面添加这样的一句,问题就迎刃而解了
<%@page Errorpage = "/error.aspx"%>
当出现错误的时候,我们只要统一在 error.aspx 文件中处理即可
5 在asp+ 中处理文本文件,在asp 中我们用 fileSystemObject 很方便的就可以处理 文本文件,asp+ 在这个方面继续
发扬的更加方便


代码:
--------------------------------------------------------------------------------

  <%@ import namespace="system.io" %>  <html>   <head>   <title>ASP+ 中 测试读取 文本文件
</title>   </head>  <body>  <%   Dim readfile As StreamReader   Dim strIn As String  
readfile = File.OpenText( "c:\sample.txt" )  Do   strIn = readfile.ReadLine()   Response.Write(
strIn & "<br>" )  Loop Until strIn = Null  readfile.Close%></body></html>

--------------------------------------------------------------------------------

是不是很简单,下面再来看看 写文本文件


代码:
--------------------------------------------------------------------------------

 <%@ import namespace="system.io" %> <html>  <head>   <title>ASP+ 测试 写 文本文件</title>  
</head>  <body>  <%   Dim writeFile As StreamWriter   writeFile = File.CreateText
( "c:\sample.txt" )   myWriter.WriteLine( "这是一个用asp+ 生成的文本文件" )   myWriter.WriteLine( "豆
腐制作,都是精品" )   myWriter.Close   Response.Write( "test.txt 创建 并 写入 成功!" )  %>  
</body>  </html>

--------------------------------------------------------------------------------



终于写完了,通过这篇文章 我们已经可以 根据 文章中 所涉及的 知识,材料和代码 已经可以开发
一个中等难度的 asp+ 站点了,当然 我这里 只是 一些简单的例子 和讲解,具体在 开发的 过程中
大家还是要靠自己 的努力的

如果你 错过了php,后来有因为 jsp 太难,就不要 放弃 asp+ 努力吧,朋友们

Tags:使用 asp 若干

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接