当前位置:首页>>网络编程>>ASP.net>>正文

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

文章出处:设计前沿收集 作者:未知 发布时间:2006-11-28 收藏到QQ书签
  数据控件支持多种用于处理空值或缺失数据的方法。例如,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>
Google