Dim dt As New DataTable
Dim dr As DataRow
dt.Columns.Add("AA")
dr = dt.NewRow
dr.Item("AA") = Nothing
dt.Rows.Add(dr)
Dim Aciklama As String
Aciklama =dt.Rows.Item(0)("AA")
Label1.Text = Aciklama
Burada datarow içindeki "AA" alanının verisi "Aciklama" değişkenine atanmak isteniyor.Eğer dr.Item("AA") DBNull değilse bu değer başarı ile "Aciklama" değişkenine aktarılacaktır.Ancak dr.Item("AA") değeri DBNull ise o zaman kodumuz şöyle bir hata verecektir.
Server Error in '/' Application.
Conversion from type 'DBNull' to type 'String' is not valid.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.Exception Details: System.InvalidCastException: Conversion from type 'DBNull' to type 'String' is not valid.
Bu hatanın nedeni string değişkene atanmak istenen dr.item("AA") değerine atanmış herhangi bir veri olmadığı için DBNull olması ve DBNull tipindeki verinin String olarak değişkene atanamamasıdır.Bu hatayı almamak için IIF ve IsDBNull fonksiyonlarını kullanabiliriz.
Aciklama = IIf(IsDBNull(dt.Rows.Item(0)("AA")), "DBNull olduğunda kullanılacak değer", dt.Rows.Item(0)("AA"))
Fonksiyonlarının kullanımını açacak olursak;
IIF (
<--True yada False değer-->,
<--true olması durumunda kullanılacak değer-->,
<--false olması durumunda kullanılacak değer-->
)
IsDBNull (
<--DBNull olup olmadığı kontrol edilecek değer -->
) =>>eğer değer DBNull ise True, değer var ise False sonucunu döndürecektir.
Hiç yorum yok:
Yorum Gönder