首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 進階資料處理:Null 值處理完整策略

     編輯:關於ASP.NET

控制項層面空值顯示

  • EmptyDataText/EmptyDataTemplate:資料來源無資料列時顯示 (GridView、FormView、DetailsView)。
  • BoundField.NullDisplayText:欄位值為 DBNull 時顯示指定文字 (如 "未列出")。

參數與繫結層面轉換

  • ConvertEmptyStringToNull="true" (BoundField、Parameter):使用者清空輸入 (String.Empty) 自動轉為 null 傳遞給資料源操作。
  • ConvertNullToDbNull="true" (ObjectDataSource):商業邏輯方法要求 DBNull.Value 而非 null 時啟用 (TableAdapter 典型需求)。
  • Parameter.DefaultValue:傳入參數為 null 時使用預設值。

鏈式反應:ConvertEmptyStringToNull + DefaultValue → 空字串 → null → 預設值。

下拉選單「全部」選項實作範例

<asp:DropDownList ID="DropDownList1" AppendDataBoundItems="True" AutoPostBack="True"
    DataSourceID="SqlDataSource2" DataTextField="state" DataValueField="state">
  <asp:ListItem Value="">ALL</asp:ListItem>
</asp:DropDownList>

<asp:SqlDataSource ID="SqlDataSource1" SelectCommand="SELECT ... WHERE state = ISNULL(@state, state)"
    CancelSelectOnNullParameter="False">
  <SelectParameters>
    <asp:ControlParameter ControlID="DropDownList1" Name="state" PropertyName="SelectedValue"
        Type="String" ConvertEmptyStringToNull="true" />
  </SelectParameters>
</asp:SqlDataSource>

關鍵點:AppendDataBoundItems 保留靜態「ALL」項、ConvertEmptyStringToNull 將空值轉 null、SQL 使用 ISNULL(@param, col) 忽略篩選、CancelSelectOnNullParameter="False" 強制執行查詢。

DetailsView 完整空值處理範例

<asp:DetailsView ...>
  <Fields>
    <asp:BoundField DataField="Phone" NullDisplayText="not listed" />
    <asp:BoundField DataField="Fax" NullDisplayText="not listed" />
  </Fields>
  <EmptyDataTemplate>
    <asp:Image ImageUrl="~/Images/warning.gif" /> 無資料可顯示
  </EmptyDataTemplate>
</asp:DetailsView>

<asp:SqlDataSource ...>
  <UpdateParameters>
    <asp:Parameter Name="ContactTitle" DefaultValue="Owner" ConvertEmptyStringToNull="true" />
    <asp:Parameter Name="Region" ConvertEmptyStringToNull="true" />
    <asp:Parameter Name="Phone" ConvertEmptyStringToNull="true" />
    <asp:Parameter Name="Fax" ConvertEmptyStringToNull="true" />
  </UpdateParameters>
</asp:SqlDataSource>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved