VB.NET處理資料行的方法詳解

iDotNetSpace發表於2010-01-28

  對於程式設計人員來說,運用VB.NET能給他們帶來好處是不言而喻的。那麼它的哪些優點能將程式設計人員的眼光吸引過去呢?我們今天就可以通過對VB.NET處理資料行的一些相關操作方法的認識,來體驗這一語言給我們帶來的好處。

  Windows窗體中的資料繫結列表框和組合框很節省時間。典型的程式碼如下(假定已經建立了SqlDataAdapter或者其它部件獲取資料):


Dim ds As New DataSet()   
SqlDataAdapter1.Fill(ds,
 "Customers")   
ListBox1.DataSource = 
ds.Tables("Customers")   
ListBox1.DisplayMember = 
"CompanyName"  
ListBox1.ValueMember = 
"CustomerID"

  

 

  在這種情況下,VB.NET處理資料行的程式碼使用Northwind資料庫的顧客記錄工作。DisplayMember屬性設定為你希望使用者在 列表框中看到的記錄欄位,它是customers表的CompanyName.通常ValueMember屬性設定為資料表中的一個鍵欄位,對於 customer來說是CustomerID.一旦使用者選擇了列表框中的一行,很容易使用列表框的SelectedValue屬性獲得鍵欄位:


  MsgBox(ListBox1.SelectedValue)

  但是有可能需要一個與被選擇項相關的整個資料行物件的引用。例如,如果被選擇的行需要被刪除,就不知道鍵了。你需要一個資料行的引用以使用Delete方法。

  典型的Visual Basic開發者通常這樣想:"我已經得到了該行的鍵了,我將編寫一些邏輯來查詢使用該鍵的行".這樣可以實現,但是有更好的實現方法。可以使用一行程式碼獲取與列表框中選項關聯的資料行:


Dim dr As DataRow = 
CType(ListBox1.SelectedItem, 
DataRowView)。Row 

  通常該邏輯不會憑直覺出現,即使對經驗豐富的開發者。為了解釋這是怎樣實現的,我把上面的一行拆成幾行,下面的VB.NET處理資料行程式碼與上面程式碼的功能相同:


Dim drv As DataRowView   
drv = CType(ListBox1.
SelectedItem, DataRowView)   
Dim dr As DataRow   
dr = drv.Row  

  DataRowView類是資料行的包裝,它被多個Windows窗體控制元件使用。它使得顯示與控制元件中的資料行相關的資料更加容易。當列表框被數 據繫結到資料表時(假定列表框中的有些行當前被選定了),列表框的SelectedItem屬性儲存了一個DataRowView物件。

  這意味著我們能把列表框的SelectedItem屬性轉換到DataRowView物件,這就是上面程式碼中的第二行實現的。接著DataRowView暴露一個Row屬性,它指向被包裝的資料行。上面的程式碼宣告瞭一個資料行並設定了Row屬性。

  轉換物件的型別以訪問它的介面的技術在Visual Basic 6.0中不是經常使用,但是在Visual Basic .NET中這是經常的。有了上面的例子後,大多數有經驗的開發者迅速跟上了這種技術。

  資料行的引用(dr)可用於用任何方式維護行。訪問資料行中的任何特定欄位是可行的。行中的資料可以被改變,能使資料行的Delete方法把該行標識為刪除,或者從資料表的行集合中刪除該行。下面的程式碼標識刪除了一行:


  dr.Delete()

  使用主鍵(由ListBox.SelectedValue返回)查詢下層資料行的方法需要很多程式碼,要花很長時間,執行起來更慢。對於剛開始使 用Visual Basic .NET的程式設計師來說花幾個小時編碼是很正常的。理解上面的VB.NET處理資料行技術節約了很多時間,更簡單、容易維護程式碼。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-626238/,如需轉載,請註明出處,否則將追究法律責任。

相關文章