国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET 2.0高級數據處理之處理Null值

2024-07-10 13:09:14
字體:
來源:轉載
供稿:網友
國內最大的酷站演示中心!
  數據控件支持多種用于處理空值或缺失數據的方法。例如,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">
 <asp:listitem value="">all</asp:listitem>
</asp:dropdownlist>
<asp:sqldatasource connectionstring="<%$ connectionstrings:pubs %>" id="sqldatasource2" runat="server" selectcommand="select distinct [state] from [authors]">
</asp:sqldatasource>

<asp:sqldatasource connectionstring="<%$ connectionstrings:pubs %>" id="sqldatasource1" runat="server" selectcommand="select au_id, au_lname, au_fname, state from authors where state = isnull(@state, state)" cancelselectonnullparameter="false">
<selectparameters>
 <asp:controlparameter controlid="dropdownlist1" name="state" propertyname="selectedvalue" type="string" />
</selectparameters>
</asp:sqldatasource>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 称多县| 尤溪县| 赣州市| 小金县| 墨脱县| 卢湾区| 汕头市| 阿拉善右旗| 天祝| 宕昌县| 冀州市| 股票| 新化县| 烟台市| 习水县| 大冶市| 和硕县| 台安县| 白山市| 西贡区| 正宁县| 武冈市| 广德县| 赤城县| 武功县| 文水县| 景洪市| 法库县| 怀集县| 清新县| 曲阜市| 霍山县| 留坝县| 金塔县| 天柱县| 开封市| 成武县| 昂仁县| 报价| 邯郸县| 中山市|