VB.NET數(shù)據(jù)窗體向?qū)绾芜M(jìn)行更改
VB.NET編程語(yǔ)言是由微軟公司推出的一款針對(duì)面向?qū)ο蟮拈_發(fā)環(huán)境??梢詾橛脩舸蛟煲粋€(gè)性能穩(wěn)定,安全可靠的開發(fā)平臺(tái)。VB.NET數(shù)據(jù)窗體向?qū)В―ata Form Wizard)你能迅速獲得文件操作程序窗體。為了使用它,選擇Project菜單的Add New Item,接著選擇Data Form(數(shù)據(jù)窗體)。該向?qū)⒁徊揭徊綆椭阒付ㄏM臄?shù)據(jù),并為那些數(shù)據(jù)建立一個(gè)文件操作程序。#t#
但是這種自動(dòng)生成程序有一個(gè)重要的限制。如果被訪問(wèn)的數(shù)據(jù)有任何字段不能為空(因?yàn)閿?shù)據(jù)庫(kù)大綱不允許空值),那么向?qū)傻某绦虿荒芴砑佑涗洝.?dāng)點(diǎn)擊Add按鈕時(shí),將出現(xiàn)錯(cuò)誤信息,提示記錄中的第一個(gè)字段不允許為空(如果你沒有最新的服務(wù)包,你也許看不到該錯(cuò)誤信息,但是程序拒絕添加記錄)。
該問(wèn)題是由于VB.NET數(shù)據(jù)窗體向?qū)褂肂indingContext對(duì)象給綁定的數(shù)據(jù)表添加了一行。下面是btnAdd_Click事件程序失敗的代碼:
- Me.BindingContext(
objProducts, "Products"
).AddNew()
解決方法是為新行略過(guò)BindingContext對(duì)象。下面是添加新行的典型代碼,該代碼應(yīng)該代替上面的一行代碼:
- Dim dr As DataRow
- dr = objProducts.Tables
("Products").NewRow- dr.Item("ProductName") = ""
- dr.Item("Discontinued") = False
- ' Set any other fields
that cannot null to default values.- objProducts.Tables("Products")
.Rows.Add(dr)
在用數(shù)據(jù)表的NewRow方法獲得一個(gè)空行時(shí),該代碼給不能為空的字段填充值。接著數(shù)據(jù)表接受新行,通過(guò)數(shù)據(jù)表行集合的Add方法添加新行。
有了這個(gè)補(bǔ)丁后,該數(shù)據(jù)程序能夠運(yùn)行??梢詫?duì)它進(jìn)行增強(qiáng)或改變,例如改變SupplierID 和CategoryID字段以從包含供應(yīng)商和類別的下拉列表中選擇。
以上就是我們?yōu)榇蠹医榻B的VB.NET數(shù)據(jù)窗體向?qū)У南嚓P(guān)應(yīng)用。