ASP.NET网站制作之ASP.NET进修篇(3)――几个复杂的ASP.EN...
什么叫数据库怎么样?什么意思?你想单学数据库。(其实变成是我问的)一个WEBFORM——这里将先容ASP.NETWEBFORM的基础观点,和个中表单项的变更。*一个数据库的使用——怎样使用CONFIG.WEB中设置的DNS毗连数据库,数据库操纵工具的一些基础用法。
*EMAIL发送——在引进一个体系类库后(用IMPORT标识符),使用msgMail工具,能够很便利的操纵邮件发送历程。
*上传——<INPUTTYPE=FILE……如许一个INPUT项在ASP.NET中有POSTEDFILE属性,分离SAVEAS事务,就能够完成上传了。
1、WEBFORM的利用
以下为援用的内容:
<scriptlanguage="C#"runat=server>
voidSubmitBtn_Click(Objectsender,EventArgse){
Message.Text="Hi"+Name.Text+",youselected:"+Category.SelectedItem;
}
</script>
以上是用C#写的一个事务处置函数,voidSubmitBtn_Click(Objectsender,EventArgse),void代表该函数没有前往值,sender是事务中触发的工具,在这里就是button工具,e是触发事务的参数。该函数中的Message、Name、Category并没有界说,它们来自上面的代码:
以下为援用的内容:
<formaction="intro6.aspx"method="post"runat="server">
<h3>Name:<asp:textboxid="Name"runat="server"/>
Category: <asp:dropdownlistid="Category"runat=server>
<asp:listitem>psychology</asp:listitem>
<asp:listitem>business</asp:listitem>
<asp:listitem>popular_comp</asp:listitem>
</asp:dropdownlist>
<asp:buttontype=submittext="Lookup"OnClick="SubmitBtn_Click"runat="server"/>
<p>
<asp:labelid="Message"runat="server"/>
</form>
起首能够注重到表单的写法和html表单完整分歧.一切的表单项包含表单自己前面都加上了runat=server,这一属性申明这是服务器端把持项,本来的文本输出,下拉菜单等的写法也变了。在这里接纳的是:
<asp:<控件种别>id=属性=runat="server"/>
控件的品种有良多(一切控件的列表能够附录中找到),各个控件的属性固然纷歧样,这会在从此具体先容,下面的代码中,我们能够瞥见的有textbox、button的id、text属性,和dropdownlist的SelectedItem属性(注重:这个属性只针对C#,在VB中,要用SelectedItem.Text属性来作为响应的取代)。
这里呈现了一个服务器端把持<asp:labelid=”Message”runat=”server”/>,这个asp:label是传统表单所没有的,它是一个服务器端文本把持,那末就存在一个成绩,假如传统的HTML里没有这个元素,那末ASP+是怎样吸收的呢?你运转一下这个程序,然后看一下HTML源码,你会发明这么一行:
<INPUTtype="hidden"name="__VIEWSTATE"value="a0z-1715863018__x">
对,ASP+就是经由过程这个埋没表单的情势传送已往的。别的,在提交后你能够发明在文本框中填写的内容,和下拉菜单的选择都被保存上去了,这在ASP中必要代码来完成。
必要提出的一点,在ASP.NET中,还能够有另外一种体例增加服务器端控件:
以下为援用的内容:
<scriptlanguage="C#"runat=server>
voidAddText(){
TextBoxtext1=newTextBox();
text1.Text="TEST";
……
}
</script>
这一段代码增加了一个TextBox控件。更多内容,可参看:甚么是ASP.NET的WEBFORM
2、一个数据库毗连的例子
利用DNS毗连,代码,申明
CONFIG.WEB中的设置:
以下为援用的内容:
<appsettings>
<addkey="MyConn"value="server=localhost;uid=sa;pwd=mypassword;
Database=somedatabase"/>
</appsettings>
**********************************************************
<%@ImportNamespace="System.Data"%>
<%@ImportNamespace="System.Data.SQL"%>
<scriptlanguage="VB"runat="server">
SubPage_Load(SrcAsObject,EAsEventArgs)
DimMyConnectionAsSQLConnection
‘SQLSERVER的毗连工具
DimConfigasHashTable
’界说一个当地变量
Config=Context.GetConfig("appsettings")
’用当地变量来保留DSN毗连字符串变量
MyConnection=NewSQLConnection(Config("MyConn"))
‘创建毗连
DimMyCommandAsSQLCommand
’声名一个Command工具交往database中拔出数据
dimparm1asstring="SomeTextValue"
dimparm1asstring="SomeTextValue2"
DimInsertCmdAsString="Insertintotablenamevalues(@parm1,@parm2)"
Usingtheconnectionstring
利用毗连字符串
MyCommand=NewSQLCommand(InsertCmd,MyConnection)
MyCommand.Parameters.Add(NewSQLParameter("@Parm1",SQLDataType.VarChar,50))
MyCommand.Parameters("@Parm1").Value=Parm1
MyCommand.Parameters.Add(NewSQLParameter("@Parm2",SQLDataType.VarChar,50))
MyCommand.Parameters("@Parm2").Value=Parm2
MyCommand.ActiveConnection.Open()
MyCommand.Execute()
MyCommand.ActiveConnection.Close()
EndSub
</script>
在以上的代码中,在使用CONFIG.WEB中设置的DNS创建毗连后,又用一个COMMAND的工具完成了拔出数据的操纵.和夙昔的ADO没甚么分歧,只是工具名字有些改动。
3、一个发送邮件的例子
上面给出一段代码,十分简单的完成了发送一封HTML格局,带有附件的EMAIL。而不象ASP中必要本人编写组件来完成。
以下为援用的内容:
<%@PageLanguage="C#"%>
<%@ImportNamespace="System.Web.Util"%>
<%
MailMessagemsgMail=newMailMessage();
msgMail.To="mail@mail.com";
msgMail.Cc="mail1@mail.com";
msgMail.From="webmaster@mail.com";
msgMail.Subject="Attachment";
msgMail.BodyFormat=MailFormat.Html;
stringstrBody="<b>hereisanattachment</b>";
msgMail.Body=strBody;
msgMail.Attachments.Add(newMailAttachment("c: emp est.txt"));
SmtpMail.Send(msgMail);
Response.Write("Email已发送乐成");
%>
下面的代码中,起首是引进System.Web.Util类库,如许才干挪用MailMessage工具,有关它的属性的利用,下面的代码中已很分明了,要注重的中央有BodyFormat属性在为MailFormat.Html时,邮件注释是HTML格局,假如改成MailFormat.Text,则是文本格局,另有,请反省你的SMTP服务的设置,邮件发送必要它的撑持。
4、一个上传的例子
ASP中上传文件必要本人写组件,代码,申明
以下为援用的内容:
<html>
<scriptlanguage="VB"runat=server>
SubUploadBtn_Click(SenderasObject,EasEventArgs)
UploadFile.PostedFile.SaveAs(Server.MapPath("test.jpg"))
MyImage.ImageUrl="test.jpg"
MyImage.Visible=true
EndSub
</script>
<body>
<formenctype="multipart/form-data"runat=server>
<h3>
SelectFileToUpload:<inputid="UploadFile"type=filerunat=server>
<asp:buttonText="UploadMe!"OnClick="UploadBtn_Click"runat=server/>
<hr>
<asp:imageid="MyImage"Visible=falserunat=server/>
</form>
</body>
</html>
间接挪用UploadFile工具(它地点的类库是ASP.NET默许的,以是不必分外的Import一个Namespace。)很简单的完成了上传,不必象在ASP中那样,要本人编写上传组件了。
java的设计机制:首先产生一个中间码,第二部编译为本地(机器)码。这个机制有很大的缺点。 目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案. PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。 主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。 比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。 虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。 是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
页:
[1]