新客网
首页 | 新闻 | 系统·网络·服务器·安全 | 工具·办公 | 编程·数据库 | 图象·网页·运营 | 硬件·存储 | 专题教程 | 论坛·old
 → 当前位置:首页 > 教程 > 编程开发 > Asp.net教程 > 正文

ASP.NET 2.0高级数据处理之处理Null值

XKER.COM   2006-11-23 10:15:59  来源:  收藏本文

  数据控件支持多种用于处理空值或缺失数据的方法。例如,GridView、FormView和DetailsView都支持EmptyDataText或EmptyDataTemplate属性,当数据源没有返回数据行的时候,你可以使用这些属性来指定控件显示的内容。我们只需要设置EmptyDataText和EmptyDataTemplate其中的一个(如果两个都设置了,EmptyDataTemplate会被重载)。你也可以在绑定字段(和衍生的字段类型)、模板字段或数据源参数对象上指定ConvertEmptyStringToNull属性,指明在调用相关的数据源操作之前,来自客户端的String.Empty值必须被转换为空值。

  ObjectDataSource也支持ConvertNullToDbNull属性,当相关的方法要求用DbNull代替空值(Visual Studio数据集中的TableAdapter类就有这个要求)的时候,我们就可以把这个属性设置为真。你还可以指定绑定字段(和衍生的字段类型)的NullDisplayText属性,当数据源返回的某个字段的值为空的时候,它指定显示的内容。如果在编辑模式中这个值没有发生变化,那么在更新操作中这个值会以空值的形式返回给后端数据源。最后,你还可以指定数据源参数的DefaultValue属性,如果某个传递进来的参数值为空的时候,该属性就给参数指定默认值。这些属性是"链式反应"的,例如,如果ConvertEmptyStringToNull和DefaultValue都被设置了,那么String.Empty值会首先被转换为空(null),接着被转换为默认值。

<asp:DetailsView…...>
 <Fields>
  <asp:BoundField DataField="Phone" HeaderText="Phone" NullDisplayText="not listed" SortExpression="Phone" />
  <asp:BoundField DataField="Fax" HeaderText="Fax" NullDisplayText="not listed" SortExpression="Fax" />
 </Fields>
 <EmptyDataTemplate>
  <asp:Image ID="Image1" runat="server" ImageUrl="~/Images/warning.gif" />There are no records to display
 </EmptyDataTemplate>
</asp:DetailsView>
<asp:SqlDataSource ……>
 <UpdateParameters>
  <asp:Parameter Name="ContactTitle" Type="String" DefaultValue="Owner" ConvertEmptyStringToNull="true" />
  <asp:Parameter Name="Region" Type="String" ConvertEmptyStringToNull="true" />
  <asp:Parameter Name="Phone" Type="String" ConvertEmptyStringToNull="true" />
  <asp:Parameter Name="Fax" Type="String" ConvertEmptyStringToNull="true" />
  <asp:Parameter Name="CustomerID" Type="String" />
 </UpdateParameters>
 ……
</asp:SqlDataSource>

  你可以使用这些处理空值的属性来实现下拉列表过滤器,让它开始时显示数据源的所有值,直到过滤器中的某个值被选中为止。我们是这样实现它的:首先给下拉列表添加一个空字符串值的数据项,并设置数据源中的与下拉列表相关的ControlParameter(控件参数)的ConvertEmptyStringToNull属性。

  接着在数据源的SelectCommand中,你可以通过检测空值来返回所有(没有过虑)值。下面的例子演示了这种技术,它使用了一个简单的SQL命令,当然你也可以在存储过程的实现中执行空值检测。请注意下拉列表的AppendDataBoundItems属性的使用,它允许来自下拉列表数据源的值被添加到"ALL"(这个项是我们静态添加的)数据项后面。同时我们要注意,在默认情况下,如果传递给SelectCommand 的相关参数的值中只要有一个为空,SqlDataSource就不执行Select操作。当传递了空值的时候,为了强制Select操作执行,你可以把它的CancelSelectOnNullParameter属性设置为假。

<asp:DropDownList AppendDataBoundItems="True" AutoPostBack="True" DataSourceID="SqlDataSource2" DataTextField="state" DataValueField="state" ID="DropDownList1" runat="server">

本新闻共2页,当前在第1页  1  2  

上一篇教程:Access数据库在asp.net程序中相对路径的解决方法
下一篇教程:没有了
收藏本文】 【我要投稿】 【打印本文】 【论坛讨论】 【关闭窗口

相关文章
·Access数据库在asp.net程序中相对路径的解决方·Object/DataSet Relational Mapping(对象/数据
·在ASP.NET中使用AJAX的简单方法·轻松加密ASP.NET 2.0 Web程序配置信息
·ASP.NET 2.0 中 Treeview 的Checkboxes 选中根·使用ASP.Net Forms模式实现WebService身份验证
·ASP.NET2.0调用MySql的存储过程·DataGridView 的分页处理
·写个偷全国公交数据库的程序·ASP.NET生成高质量缩略图通用函数(c#代码)
·利用正则表达式去掉html代码·ASP.NET 2.0 中的 Theme 功能
·如何在页面之间传递数据量较大的复杂数据·小技巧:让Apache支持ASP.NET
·ASP.NET 配置文件层次结构和继承·ASP.NET2.0自动搜索文件组成导航系统

学院文章搜索
  
推荐文章
·ASP.NET 2.0高级数据处理之
·复杂电脑简单用:二十八款系
·构建可配置PHP应用程序的正
·理解防火墙Log与端口扫描的
·独门绝技!防木马三招两式
·安全使用网上银行的七点建
·限制网上行为 从WorkWin限
·无线技术在Linux操作系统中
·其实很简单——防火墙设置
·端口·木马·安全·扫描应
阅读排行
·免费代理IP(每日更新)
·windows下如何修改右键菜单
·清除猖狂的Sxs.exe病毒
·DOS下对系统重新进行分区
·DOS常用命令
·编程过把瘾:自己动手写操
·DOS下常用的相关网络命令
·Fdisk分区详解
·超详细:用Macfee打造自己的
·国内数据恢复市场内幕揭秘
专题教程
·PHP教程专题
·MySQL 专题
·数据恢复指南 专题
·Web服务器专题
·DB2 9数据库专题
·ghost教程 专题
·局域网技术专题
·虚拟机专题
·CDN加速技术专题
·注册表教程专题
最新文章
·ASP.NET 2.0高级数据处理之
·滚动字幕的制作 marquee
·Access数据库在asp.net程序
·用C#访问ACCESS数据库问题
·C#中使用net share命令时要
·SQL Server 与Oracle的不同
·网页刷新方法
·Object/DataSet Relationa
·MySQL数据库中的安全解决方
·Linux操作系统的声音设备编
·Linux内核驱动程序初始化顺
·学软件破解需要知道的6个最
·保持网站流量 对网站改版方
·Photoshop文字特效:逼真立
·web标准常见问题大集合
设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003 - 2006 XKER Inc. All Rights Reserved
新客网 版权所有