亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET 2.0怎么給DataRow添加字段級驗證

發布時間:2021-07-15 10:45:28 來源:億速云 閱讀:138 作者:chen 欄目:編程語言

本篇內容主要講解“ASP.NET 2.0怎么給DataRow添加字段級驗證”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“ASP.NET 2.0怎么給DataRow添加字段級驗證”吧!

給DataRow添加字段級驗證是指在插入或更新時檢查業務對象所涉及到的所有屬性值。拿產品來舉個例,某些字段級的驗證規則如下所示:

·         ProductName字段不得超過40個字符

·         QuantityPerUnit字段不得超過20個字符

·         ProductID、ProductName以及Discontinued字段是必填的,而其他字段則是可填可不填的

·         UnitPrice、UnitsInStock、UnitsOnOrder以及ReorderLevel字段不得小于0

這些規則可以或者說是應該在數據庫層被描述出來。ProductName和QuantityPerUnit字段上的字符數限制可以通過Products表中相應列的數據類型來實現(分別為nvarchar(40) and nvarchar(20))。字段“是否必填”可以通過將數據庫中表的相應列設置為“允許為NULL”來實現。為了保證UnitPrice、UnitsInStock、UnitsOnOrder以及ReorderLevel字段的值不小于0,可以分別在它們的相應列上加一個約束。

除了在數據庫中應用了這些規則之外,它們同時也將被其應用在DataSet上。事實上,字段長度和是否允許為空等信息已經被應用到了各DataTable的DataColumn集合中。我們可以在數據集設計器(DataSet Designer)中看到已經存在的字段級驗證,從某個DataTable中選擇一個字段,然后在屬性窗口中就可以找到了。如圖四所示,ProductDataTable中的QuantityPerUnit字段允許空值并且***長度為20各字符。如果我們試圖給某個ProductsDataRow的QuantityPerUnit屬性設置一個長度大于20個字符的字符串,將會有一個ArgumentException被拋出。

ASP.NET 2.0怎么給DataRow添加字段級驗證

圖四:DataColumn提供了基本的字段級驗證

不幸的是,我們不能通過屬性窗口指定一個邊界檢查,比如UnitPrice的值不能小于0。為了提供這樣的字段級驗證,我們需要為DataTable的ColumnChanging事件建立一個Event Handler。正如上一節教程中所提到的那樣,由類型化數據集創建的DataSet、DataTable還有DataRow對象可以通過partial類來進行擴展。使用這個技術,我們可以為ProductDataTable創建一個ColumnChanging的Event Handler。我們先在App_Code文件夾中新建一個名為ProductsDataTable.ColumnChanging.cs的類文件,如下圖所示。

ASP.NET 2.0怎么給DataRow添加字段級驗證

圖五:在App_Code文件夾中添加新類

然后,給ColumnChanging事件創建一個Event handler,以保證UnitPrice、UnitsInStock、UnitsOnOrder以及ReorderLevel字段的值不小于0。如果這些列的值超出范圍就拋出一個ArgumentException。

public partial class Northwind    {        public partial class ProductsDataTable
  •     {    

  •         public override void BeginInit()    

  •          {    

  •             this.ColumnChanging += ValidateColumn;    

  •          }    

  •    

  •          void ValidateColumn(object sender, DataColumnChangeEventArgs e)    

  •          {    

  •             if(e.Column.Equals(this.UnitPriceColumn))    

  •             {    

  •                if(!Convert.IsDBNull(e.ProposedValue) && (decimal)e.ProposedValue <  0)    

  •                {    

  •                   throw new ArgumentException("UnitPrice cannot be less than zero""UnitPrice");    

  •                }    

  •             }    

  •             else if (e.Column.Equals(this.UnitsInStockColumn) ||    

  •                     e.Column.Equals(this.UnitsOnOrderColumn) ||    

  •                    e.Column.Equals(this.ReorderLevelColumn))    

  •             {    

  •                 if (!Convert.IsDBNull(e.ProposedValue) && (short)e.ProposedValue <  0)    

  •                 {    

  •                     throw new ArgumentException(string.Format("{0} cannot be less than zero", e.Column.ColumnName), e.Column.ColumnName);    

  •                 }    

  •             }    

  •          }    

  •     }    

  • }   

  • 這樣就實現了asp.net 2.0數據操作中的業務邏輯層的第三步:給DataRow添加字段級驗證。

到此,相信大家對“ASP.NET 2.0怎么給DataRow添加字段級驗證”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

集安市| 景东| 盐亭县| 岑溪市| 仲巴县| 若尔盖县| 桂平市| 常熟市| 阿克陶县| 夹江县| 寿阳县| 云阳县| 南和县| 鄱阳县| 蒲江县| 建始县| 长宁县| 贵阳市| 九龙城区| 阜宁县| 黄梅县| 潼南县| 凭祥市| 中江县| 高尔夫| 科技| 色达县| 汨罗市| 洪泽县| 连山| 丹凤县| 灌阳县| 苍南县| 淄博市| 兴和县| 会东县| 宿松县| 红河县| 耿马| 全南县| 武胜县|