您的位置:首页 > 产品设计 > UI/UE

[.net training]代码cnBlogsGuestBook 1.0中展示出来的问题

2005-03-21 14:00 316 查看
首先,1.0 的代码并不是按照ASP.NET的思想来写的,就是用ASP.NET的皮包ASP的陷,Rayinuk看了1.0的代码后感到非常疑惑,相信许多没有看过ASP之类的朋友直接看这段代码感到非常的不解。

//帖子的content
strResponse+=dt.Rows[i]["msg_content"];
strResponse+="</TD>";
strResponse+="</TR>";
strResponse+="<TR>";
strResponse+="<TD align='right'>";
类似这样的写法使用过ASP一段时间的朋友肯定很清楚,比起我们先构架好table的代码,然后在需要显示动态内容的地方用<%=XXXX%>输出的方法在速度上要快很多。
其实,无论是ASP还是ASP.NET或是JSP什么的,最后浏览器接受的只是HTML,我们这样写的结果是让服务器去解释,然后将我们的代码全部翻译成HTML语言,最后浏览器来解释HTML,表现出结果。
我们把这段代码放在Page_Load()里,是因为ASP.NET会自动执行这个函数,看名字就是表示页面载入的时候执行的,所以能显示出来。顺便提一下,还有页面初始化触发的事件等也是自动运行的,而且有先后顺序,这个我们会通过一个专题来做解释。
从这段不正规的ASP.NET程序来看,它的确是可以运行的,但是由此我们来看一下ASP.NET如何能让我们做的更好呢?
当我们的Connection出现问题的时候,页面一定是一个error,当然,泄漏程序内部信息并不是好事,所以在ASP的时代我们都用一个error对象来处理,但是在.net的时代,我们可以用try来处理它。

dbname=Server.MapPath(@"data0621/database.mdb");
//建立一个连接数据库用的Connection
OleDbConnection conn=new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source="+dbname);
//打开这个连接
conn.Open();

对于conn.Open() 之前的语句,肯定不会出现错误,但是conn.Open()就不是了。如果ConnectionString中连接数据库的字符串有错误,那么错误就在conn.Open()上表现出来了,这是我们不希望的,因此,对于容易出现错误的地方,我们把它放到try里,如果错误发生了,我们就去catch这个exception,这个exception会描述错误信息,然后只告诉用户服务器这边出现了error。由于HTML的原因,这样可以既可以避免我们的web程序卡死在一个地方,又可以掩盖程序内部的错误信息,保护了程序的内容的隐蔽性。较为详细的内容稍后我们专题描述。

还是对于这段代码:

//帖子的content
strResponse+=dt.Rows[i]["msg_content"];
strResponse+="</TD>";
strResponse+="</TR>";
strResponse+="<TR>";
strResponse+="<TD align='right'>";
我们反复的使用strResponse+=XXX在.NET里不是一件好事,.net为我们准备了一个StringBuilder类来专门解决这类问题,两者在效率上可谓相差甚远,当然,这也是用一个专题来讲解的。

对于btnSubmit_Click()事件,我们想实现的功能就是为了把title和content内容写进数据库里,这里模仿了我们在ASP里常用的
Rs.addnew

最后再Rs.update一下。在ASP里我们用的ADO,虽然.NET里也可以用ADO,但是更好的ADO.NET可以更好的为我们来服务。ADO.NET不是几篇文章可以讲述清楚的,所以我们不准备对此讲解很深。如果用ASP.net让我们更好更快的做出一个Guestbook来呢?我们将通过寒枫天伤为我们做的2.0版的事例来踏入ASP.NET的殿堂。很少的代码就更快更好的实现了我们想要的功能,稍后我们马上贴出实现方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: