真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ASP.NET2.0怎么給DataRow添加字段級(jí)驗(yàn)證

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

創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),大姚網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:大姚等地區(qū)。大姚做網(wǎng)站價(jià)格咨詢:18982081108

給DataRow添加字段級(jí)驗(yàn)證是指在插入或更新時(shí)檢查業(yè)務(wù)對(duì)象所涉及到的所有屬性值。拿產(chǎn)品來舉個(gè)例,某些字段級(jí)的驗(yàn)證規(guī)則如下所示:

·         ProductName字段不得超過40個(gè)字符

·         QuantityPerUnit字段不得超過20個(gè)字符

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

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

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

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

ASP.NET 2.0怎么給DataRow添加字段級(jí)驗(yàn)證

圖四:DataColumn提供了基本的字段級(jí)驗(yàn)證

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

ASP.NET 2.0怎么給DataRow添加字段級(jí)驗(yàn)證

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

然后,給ColumnChanging事件創(chuàng)建一個(gè)Event handler,以保證UnitPrice、UnitsInStock、UnitsOnOrder以及ReorderLevel字段的值不小于0。如果這些列的值超出范圍就拋出一個(gè)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);    

  •                 }    

  •             }    

  •          }    

  •     }    

  • }   

  • 這樣就實(shí)現(xiàn)了asp.net 2.0數(shù)據(jù)操作中的業(yè)務(wù)邏輯層的第三步:給DataRow添加字段級(jí)驗(yàn)證。

到此,相信大家對(duì)“ASP.NET 2.0怎么給DataRow添加字段級(jí)驗(yàn)證”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


網(wǎng)頁標(biāo)題:ASP.NET2.0怎么給DataRow添加字段級(jí)驗(yàn)證
文章分享:http://weahome.cn/article/pdjigs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部