我将一个datarow对象的值赋给另一个datarow对象。例如:
newAddress.AddrId = frenchAddress.AddrId
newAddress.AddrLn1 = frenchAddress.AddrLn1
newAddress.AddrLn2 = frenchAddress.AddrLn2
newAddress.AddrLn3 = frenchAddress.AddrLn3
newAddress.AddrCityNm = frenchAddress.AddrCityNm
newAddress.CntryId = frenchAddress.CntryId
newAddress.ProvId = frenchAddress.ProvIdfrenchAddress中的一些值可能为空,因此我最终得到了一个异常,因为我将DBNull的值赋给了newAddress。处理DBNull的最好和最干净的方法是什么?有DBNull的地方可以直接插入NULL吗
使用VB.Net。
发布于 2015-06-18 21:02:03
由于这是一个类型化的DataRow(因此是一个具有命名属性的自动生成的类型),因此已经有了用于此目的的方法:
If frenchAddress.IsAddrCityNmNull Then
newAddress.SetAddrCityNmNull()
Else
newAddress.AddrCityNm = frenchAddress.AddrCityNm
End If 如果它不是类型化的而是标准的DataRow,那么您可以使用支持可空类型的SetField方法,并且还应该处理这种情况:
newAddress.SetField("ColumnName", frenchAddress.Field(Of String)("ColumnName"))发布于 2015-06-18 21:04:36
您可以将IsDbNull函数与If语句一起使用,例如:
newAddress.AddrLn1 = If (IsDbNull(frenchAddress.AddrLn1), String.Empty, frenchAddress.AddrLine1)发布于 2015-06-19 02:25:43
这最终是我使用的解决方案,有点混合了上面两个答案。它似乎工作得不错:
newAddress.AddrLn1 = If(frenchAddress.IsAddrLn1Null = True, Nothing, frenchAddress.AddrLn1)https://stackoverflow.com/questions/30915987
复制相似问题