ASP.NET编程:ASP.NET 2.0初级数据处置的地方理Null值
中间码是基于一个虚拟机器。源代码是最高层的,理论上从源代码开始直接编译成本地码能提供最大优化的。而中间码只能是转译成本地码,效率上难免受到损耗。根据虚拟机器所设定的体系结构的特点,和本地机器的差异的多少。asp.net|初级|数据 数据控件撑持多种用于处置空值或缺掉数据的办法。比方,GridView、FormView和DetailsView都撑持EmptyDataText或EmptyDataTemplate属性,当数据源没有前往数据行的时分,你可使用这些属性来指定控件显现的内容。我们只必要设置EmptyDataText和EmptyDataTemplate个中的一个(假如两个都设置了,EmptyDataTemplate会被重载)。你也能够在绑定字段(和衍生的字段范例)、模板字段或数据源参数工具上指定ConvertEmptyStringToNull属性,指明在挪用相干的数据源操纵之前,来自客户真个String.Empty值必需被转换为空值。ObjectDataSource也撑持ConvertNullToDbNull属性,当相干的办法请求用DbNull取代空值(VisualStudio数据会合的TableAdapter类就有这个请求)的时分,我们就能够把这个属性设置为真。你还能够指定绑定字段(和衍生的字段范例)的NullDisplayText属性,当数据源前往的某个字段的值为空的时分,它指定显现的内容。假如在编纂形式中这个值没有产生变更,那末在更新操纵中这个值会以空值的情势前往给后端数据源。最初,你还能够指定命据源参数的DefaultValue属性,假如某个传送出去的参数值为空的时分,该属性就给参数指定默许值。这些属性是"链式反响"的,比方,假如ConvertEmptyStringToNull和DefaultValue都被设置了,那末String.Empty值会起首被转换为空(null),接着被转换为默许值。
<asp:DetailsView…...>
<Fields>
<asp:BoundFieldDataField="Phone"HeaderText="Phone"NullDisplayText="notlisted"SortExpression="Phone"/>
<asp:BoundFieldDataField="Fax"HeaderText="Fax"NullDisplayText="notlisted"SortExpression="Fax"/>
</Fields>
<EmptyDataTemplate>
<asp:ImageID="Image1"runat="server"ImageUrl="~/Images/warning.gif"/>Therearenorecordstodisplay
</EmptyDataTemplate>
</asp:DetailsView>
<asp:SqlDataSource……>
<UpdateParameters>
<asp:ParameterName="ContactTitle"Type="String"DefaultValue="Owner"ConvertEmptyStringToNull="true"/>
<asp:ParameterName="Region"Type="String"ConvertEmptyStringToNull="true"/>
<asp:ParameterName="Phone"Type="String"ConvertEmptyStringToNull="true"/>
<asp:ParameterName="Fax"Type="String"ConvertEmptyStringToNull="true"/>
<asp:ParameterName="CustomerID"Type="String"/>
</UpdateParameters>
……
</asp:SqlDataSource>
你可使用这些处置空值的属性来完成下拉列表过滤器,让它入手下手时显现数据源的一切值,直到过滤器中的某个值被选中为止。我们是如许完成它的:起首给下拉列表增加一个空字符串值的数据项,并设置数据源中的与下拉列表相干的ControlParameter(控件参数)的ConvertEmptyStringToNull属性。
接着在数据源的SelectCommand中,你能够经由过程检测空值来前往一切(没有过虑)值。上面的例子演示了这类手艺,它利用了一个复杂的SQL命令,固然你也能够在存储历程的完成中实行空值检测。请注重下拉列表的AppendDataBoundItems属性的利用,它同意来自下拉列表数据源的值被增加到"ALL"(这个项是我们静态增加的)数据项前面。同时我们要注重,在默许情形下,假如传送给SelectCommand的相干参数的值中只需有一个为空,SqlDataSource就不实行Select操纵。当传送了空值的时分,为了强迫Select操纵实行,你能够把它的CancelSelectOnNullParameter属性设置为假。
<asp:DropDownListAppendDataBoundItems="True"AutoPostBack="True"DataSourceID="SqlDataSource2"DataTextField="state"DataValueField="state"ID="DropDownList1"runat="server">
<asp:ListItemValue="">ALL</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSourceConnectionString="<%$ConnectionStrings:Pubs%>"ID="SqlDataSource2"runat="server"SelectCommand="SELECTDISTINCTFROM">
</asp:SqlDataSource>
<asp:SqlDataSourceConnectionString="<%$ConnectionStrings:Pubs%>"ID="SqlDataSource1"runat="server"SelectCommand="SELECTau_id,au_lname,au_fname,stateFROMauthorsWHEREstate=IsNull(@state,state)"CancelSelectOnNullParameter="False">
<SelectParameters>
<asp:ControlParameterControlID="DropDownList1"Name="state"PropertyName="SelectedValue"Type="String"/>
</SelectParameters>
</asp:SqlDataSource>兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情! 可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。 Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。 PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。 能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
页:
[1]