標(biāo)題: 巧用IsDbNull函數(shù)及object類型(vb.net開發(fā)) [打印本頁] 作者: 重新來過 時間: 2006-4-18 12:42 標(biāo)題: 巧用IsDbNull函數(shù)及object類型(vb.net開發(fā)) 在用vb開發(fā)平臺的,我們時常會遇見這樣一個問題
strName = cmbUser.SelectedItem.Value
'//
cmbUser.SelectedItem.Value = strName
上面兩個語句看是正常,可是有時我們在跑動程序是“無緣無故” 在這里報錯!!!
什么原因??因為vb中有種DbNull數(shù)據(jù)類型,在幫助文檔里面這種函數(shù)的解釋不夠清晰
很多人無法立即,到這里就束手無策,咋辦??
簡單 可以寫個函數(shù)
private function DbNullTo(byval strSource as string,byval repl as string ) as string
if IsDbNull(strSource) = true then
return repl
else
return strSource
end if
end sub
這是我們可以保證程序中不會出現(xiàn)有DbNuLL 類型時會出錯(上面的情況只處理了字符型)
我們可以中 重載的方式來寫上面的函數(shù) 這樣可以處理其他的情況
但是 這樣的情況下 代碼會增加
怎么辦??
我們利用vb里面的 object 類型來試試
private function DbNullTo(byval datSource as object,byval datRepl as object ) as object
if IsDbNull(datSource) = true then
select case datRepl .GetType.Name
case "Int32" ' Integer
return CInt(datRepl )
case "Single" 'Single
case "Double" ' Double
....
end select
end if
select case datSource.GetType.Name
case "Int32" ' Integer
return CInt(strDatSource)
case "Single" 'Single
case "Double" ' Double
....
end select
end function
需要注意的是 上面的代碼中 雙引號類的類型名要區(qū)分大小寫 ,當(dāng)然上面的寫法不是最好的方法
但是可以一勞永逸作者: heweike 時間: 2006-4-27 20:12 標(biāo)題: 感謝 我是一名vb.net的初學(xué)者,上面的內(nèi)容對我很有幫助.感謝